Задать вопрос
Ответы пользователя по тегу Python
  • Как удалить все строки-дубликаты из txt файла?

    @cgamadeus
    Зависит от размера файла. Если строк не очень много и они поместятся в оперативу то всё можно релать в 3 строки

    lines = open(file_path).read().split('\n')
    unique_lines = list(set([x.lower() for x in lines]))
    open(file_path2, 'w').write('\n'.join(unique_lines))


    В этом случае в новый файл сохранятся все строки в нижнем регистре.
    Если надо сохранить регистр первой найденной комбинации то можно сделать хитрей

    from fnmatch import fnmatch
    lines = [line.strip() for line in open(file_path).readlines()]
    unique_lines = []
    [unique_lines.append(item) for item in lines if not any([fnmatch(item, x) for x in unique_lines])]
    open(file_path2, 'w').write('\n'.join(unique_lines))


    Если файл весит гигобайты или строки километровые, то придется делать еще хитрей, через временное хранилище, хеши или еще как-то. В условии задачи про это ничего нет.
    Ответ написан
    Комментировать