python сравнивать строки в больших файлах - PullRequest
0 голосов
/ 06 августа 2020

Мне нужно сравнить два файла .csv (файлы более 65000 строк). Найдите строки, которых нет во втором файле. Я использую diffflib.ndiff:

for line in difflib.ndiff(text1, text2):
    print(line,)

Но получаю неожиданные результаты. Функция находит две одинаковые строки и помечает их как разные:

+ Gr4,DQ_3Gb_1m_DR_926_23489,100,,,70,,
- Gr4,DQ_3Gb_1m_DR_926_23489,100,,,70,,
  1. В чем может быть проблема?
  2. Каким может быть подходящий способ найти различия?

2.

from itertools import izip_longest
l1 = map(lambda x: x.strip(), list(open('test1.txt')))
l2 = map(lambda x: x.strip(), list(open('test2.txt')))
diff_list = izip_longest(l1, l2)
for diff in diff_list:
    print '%s %s %s' % (
        diff[0] or '', 
        '==' if diff[0] == diff[1] else '!=',
        diff[1] or '',
    )

Я попытался использовать следующий код для сравнения файлов, но получил тот же неожиданный результат, почему это так?

Gr4,DQ_1Gb_1m_DR_926_23486,100,,,70,,!=Gr4,DQ_3Gb_1m_DR_926_23489,100,,,70,,
Gr4,DQ_3Gb_1m_DR_926_23489,100,,,70,,!=Gr4,DQ_1Gb_1m_DR_926_23486,100,,,70,,

1 Ответ

0 голосов
/ 11 августа 2020

Это просто, если вы используете pandas. Поскольку вам не предоставлен набор данных. Я буду использовать свой собственный.

Допустим, у меня два CSV.

enter image description here

Data looks like this :

enter image description here

Now print line, that is not present in second file (benz model in not present in second file):

введите описание изображения здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...