Задать вопрос
@dandyvssega
Начинаю кодить

Как сравнить 2 тхт файла и удалить повторы?

Всем доброго дня, подскажите пожалуйста как сделать сравнение и удаление. Формат первого файла
Y.Turner@Hotmail.Com:Yvette Turner
Kelliekelly@Hotmail.Com:Kellie Kelly
Hades2056@Hotmail.Com:James Gillam
Peter.Garrad@Tesco.Net:Carl Garrad

Формат второго
Hades2056@Hotmail.Com
Peter.Garrad@Tesco.Net

То есть во втором файле чисто мыльники, цель-удалить строки из первого файла которые содержат мыла из второго. К сожалению питон только начал изучать, подскажите за что зацепиться.
  • Вопрос задан
  • 1262 просмотра
Подписаться 4 Оценить Комментировать
Решения вопроса 1
@undeadter
Как то так:

file_1 = open('1.txt', 'r').read().split('\n')
file_2 = open('2.txt', 'r').read().split('\n')

array = []
for email in file_1:
    if email.split(':')[0] not in file_2:
        array.append(email)

str = ""
for email in array:
    str += email
    str += '\n'

file_3 = open('3.txt', 'w')
file_3.write(str)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Denius
Для разнообразия:
#!/usr/bin/env python3

filename = "/path/file1"
data = {}
with open(file1, "r") as f:
    while True:
        line = f.readline().replace('\n', '')
        if not line:
            break
        key, value = line.split(':')
        data(key) = value

with open(file2, "r") as f:
    while True:
        line = f.readline().replace('\n', '')
        if not line:
            break
        del data[line]

with open(file1, "w") as f:
    for key, value in data.items():
        f.write("{}:{}".format(key, value))

Работать будет, если все адреса почты уникальны, иначе будет потеря одного из задвоенных адресов.
Не проверял, если где очепятался, то сорри, но идея понятна ))
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы