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 🛠️
-
Input Folder:
Di sini, nilaiinput_directory
diubah keMaret
, lokasi folder tempat semua file.txt
aslinya berada. -
Output Folder:
Nilaioutput_directory
diatur keMaretBersih
, lokasi folder di mana file yang telah dibersihkan akan disimpan. -
Penamaan Output File:
Setiap file yang telah dibersihkan akan dinamai ulang dengan awalancleaned_
di dalam folderMaretBersih
.
Menggunakan Script 🔧
- Siapkan folder bernama
Maret
yang berisi file.txt
. - 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
danoutput_directory
.- Contoh path absolut:
input_directory = "/path/to/Maret" output_directory = "/path/to/MaretBersih"
- Contoh path absolut:
- 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