У меня есть два текстовых файла, каждый из примерно 1 ГБ, где каждая строка содержит 60 столбцов. Есть 6 столбцов, которые являются ключами для сравнения в каждом файле.Python для сравнения огромных текстовых файлов на основе нескольких ключей
Пример:
файл1:
4|null|null|null|null|null|3590740374739|20077|7739662|75414741|
файл2:
4|null|11|333|asdsd|null|3590740374739|20077|7739662|75414741|
Вот две строки равны как столбцы 7,8,9 и 10 являются одинаковыми в двух файлах (клавишах). Я попробовал образец для сравнения файлов без учета ключей, который отлично работает, но мне нужно сравнивать на основе ключей, а не символов для символов в каждой строке.
Вот пример кода, который я пытался сравнить, не рассматривая ключи.
matched = open('matchedrecords.txt','w')
with open('srcone.txt') as b:
blines = set(b)
with open('srctwo.txt') as a:
alines = set(a)
with open('notInfirstSource.txt', 'w') as result:
for line in alines:
if line not in blines:
result.write(line)
else:
matched.write(line)
with open('notInsecondSource.txt', 'w') as non:
for lin in blines:
if lin not in alines:
non.write(lin)
matched.close()
Могут ли те же ключи отображаться дважды (в других строках) внутри файла? Если да, то что должно произойти в этом случае? –
Основной метод использования здесь - сортировать оба файла и проходить через них одновременно. Кроме того, операция тяжелой сортировки - это просто линейная (прогулка через нее) функция. – Wolph
Спасибо за комментарий :). Комбинации ключей уникальны в обоих файлах @ TimPietzcker. Потому что одним из ключей является метка даты. –