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

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

Удаляем дубликаты  из файла на 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». Там вы узнаете:

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

    НЕТ КОММЕНТАРИЕВ

    Оставить комментарий