Здравствуйте! Во время работы с текстовыми файлами часто возникает задача очистки данных от дубликатов. Например, у вас есть список email-адресов, номеров телефонов или логов, и вам нужно удалить повторяющиеся строки.

Удаляем дубликаты  из файла на Python

Здравствуйте! Во время работы с текстовыми файлами часто возникает задача очистки данных от дубликатов. Например, у вас есть список email-адресов, номеров телефонов или логов, и вам нужно удалить повторяющиеся строки.

Сделать это вручную не только долго, но и ненадёжно. А вот с помощью Python вы можете автоматизировать этот процесс буквально за пару минут.

Для удаления повторяющихся строк мы будем использовать структуру данных set(), которая хранит только уникальные значения. Это позволяет легко проверять: встречалась ли такая строка ранее.

Программа на Python

infilename = input("Введите путь: ")
outfilename = input("Введите итоговый файл: ")

lines_seen = set() # Хранилище уже прочитанных строк
outfile = open(outfilename, "w", encoding='utf-8')

for line in open(infilename, "r", encoding='utf-8'):
if line not in lines_seen: # Если строка ещё не встречалась
outfile.write(line) # Записываем её в новый файл
lines_seen.add(line) # И добавляем в хранилище

outfile.close()

Как работает скрипт?

1. Программа запрашивает у пользователя:

  • Путь к исходному файлу (откуда читать данные);
  • Имя итогового файла (куда записать результат).

2. Открывается выходной файл для записи в кодировке UTF-8.

3. Программа построчно читает входной файл.

4. Каждая строка проверяется: если она ещё не встречалась — записывается в новый файл.

5. Все дубликаты игнорируются, а порядок строк сохраняется.

  • Чтобы сделать программу более надёжной, можно добавить обработку ошибок, например, проверку существования файла.
  • Для очень больших файлов лучше использовать буферизацию или генераторы, чтобы не загружать всё содержимое в память.
  • Где может пригодиться?

    Данный скрипт будет полезен:

    • При подготовке списков рассылок;
    • Для очистки логов сервера;
    • При анализе данных;
    • Как основа для более сложных обработчиков текстовых файлов.

    Если вы хотите освоить Python и автоматизировать рутинные задачи, полезно изучить курс "Написание лайфхаков на Python". Там вы узнаете:

    • Как работать с файлами и папками;
    • Как парсить данные из интернета;
    • Как создавать свои собственные программы;
    • И многое другое!