Удаление дубликатов строк в текстовом файле на Python 3

Искал функцию удаление дубликатов в текстовом файле для одного своего парсера на 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')

Надеюсь, кому-нибудь будет полезно.

1 комментарий to“Удаление дубликатов строк в текстовом файле на Python 3”

  1. dgrig
    05.08.2018 at 21:40 #

    Пожалуй лучше будет сделать lines множеством – тогда проверка наличия уникальной строки будет значительно быстрее. Но это так… оптимизации

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

(Required)

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.