Искал функцию удаление дубликатов в текстовом файле для одного своего парсера на Python 3.
Нашел, делюсь.
#!/usr/bin/python3 # -*- coding:utf-8 -*- from tempfile import mkstemp from os import close from shutil import move def remove_dubl(file): ft, temp = mkstemp() # создать temp-файл lines = [] # уникальные строки из file with open(temp, 'w', encoding='utf-8') as t, open(file) as f: for line in f: # читать file построчно if line not in lines: # для line, отсутствующих в lines lines.append(line) # сохранить line в lines t.write(line) # записать line в temp-файл close(ft) # закрыть temp-файл move(temp, file) # переместить/переименовать temp-файл в file if __name__ == '__main__': remove_dubl('source_file.txt')
Надеюсь, кому-нибудь будет полезно.
Пожалуй лучше будет сделать lines множеством — тогда проверка наличия уникальной строки будет значительно быстрее. Но это так… оптимизации
Храни тебя Бог, добрый Человек!
Спасибо! отлично ищет!