Untuk meremove duplicate line dari semua file .txt di dalam sebuah directory, kita perlu memodifikasi script supaya membaca setiap file .txt di directory tersebut. Kita juga harus memastikan bahwa duplicate secara global di seluruh file juga diperhitungkan, atau hanya di setiap file masing-masing. Untuk desain ini, saya akan menunjukkan solusi yang menghapus duplicate di tingkat setiap file secara individu.

Jika data input berada di folder Maret dan hasil keluaran diinginkan berada di folder MaretBersih, kamu hanya perlu mengganti nilai input_directory dan output_directory sesuai nama folder tersebut di kode program.

Script selesai dengan penyesuaian sebagai berikut:

import hashlib
import os

# Fungsi untuk meremove duplicate lines dari satu file
def remove_duplicates_from_file(input_file_path, output_file_path):
    completed_lines_hash = set()

    with open(output_file_path, "w", encoding="utf-8") as output_file:
        with open(input_file_path, "r", encoding="utf-8") as input_file:
            for line in input_file:
                hashValue = hashlib.md5(line.rstrip().encode("utf-8")).hexdigest()
                if hashValue not in completed_lines_hash:
                    output_file.write(line)
                    completed_lines_hash.add(hashValue)

# Folder input (Maret) dan output (MaretBersih)
input_directory = "Maret"  # Folder input tempat file .txt berada
output_directory = "MaretBersih"  # Folder output tempat file bersih disimpan

# Membuat direktori output jika belum ada
if not os.path.exists(output_directory):
    os.makedirs(output_directory)

# Iterasi melalui setiap file .txt di folder input
for filename in os.listdir(input_directory):
    if filename.endswith(".txt"):  # Pastikan hanya file .txt diolah
        input_file_path = os.path.join(input_directory, filename)
        output_file_path = os.path.join(output_directory, f"cleaned_{filename}")

        print(f"Processing file: {filename}")
        remove_duplicates_from_file(input_file_path, output_file_path)

print("Duplicate lines have been removed from all files in 'Maret' and saved to 'MaretBersih' successfully!")

Penyesuaian 🛠️

  1. Input Folder:
    Di sini, nilai input_directory diubah ke Maret, lokasi folder tempat semua file .txt aslinya berada.

  2. Output Folder:
    Nilai output_directory diatur ke MaretBersih, lokasi folder di mana file yang telah dibersihkan akan disimpan.

  3. Penamaan Output File:
    Setiap file yang telah dibersihkan akan dinamai ulang dengan awalan cleaned_ di dalam folder MaretBersih.

Menggunakan Script 🔧

  1. Siapkan folder bernama Maret yang berisi file .txt.
  2. Pastikan folder tersebut berada di direktori kerja (working directory) yang sama dengan script Python. Jika berada di lokasi berbeda, beri path absolut ke input_directory dan output_directory.
    • Contoh path absolut:
      input_directory = "/path/to/Maret"
      output_directory = "/path/to/MaretBersih"
      
  3. Jalankan script dari terminal:
    python script_name.py
    

Setelah script selesai, file hasil Anda yang tidak memiliki duplikat line akan ada di folder MaretBersih. 👍

Semoga berhasil! Jika ada kendala, tinggalkan pertanyaan ya! 😊

For Single File Txt

For SIngle .TXT File

import hashlib
import sys

if len(sys.argv) != 3:
    print("Usage: python script.py <input_file_path> <output_file_path>")
    sys.exit(1)

input_file_path = sys.argv[1]
output_file_path = sys.argv[2]

completed_lines_hash = set()

# Menggunakan 'with' untuk membuka file agar lebih aman
with open(output_file_path, "w", encoding='utf-8') as output_file:
    with open(input_file_path, "r", encoding='utf-8') as input_file:
        for line in input_file:
            hashValue = hashlib.md5(line.rstrip().encode('utf-8')).hexdigest()
            if hashValue not in completed_lines_hash:
                output_file.write(line)
                completed_lines_hash.add(hashValue)

print("Duplicate lines have been removed successfully.")

How to Use

py script.py input.txt output.txt