Сравнение двух .txt файлов с помощью difflib в Python

Я получил эту проблему, когда пров-файл был удален. Я создаю файл обеспечения, и он исправлен.

21
задан kame 1 November 2016 в 11:14
поделиться

3 ответа

Для начала вам нужно передать в difflib.SequenceMatcher строки, а не файлы:

# Like so
difflib.SequenceMatcher(None, str1, str2)

# Or just read the files in
difflib.SequenceMatcher(None, file1.read(), file2.read())

Это все равно исправит вашу ошибку. Чтобы получить первую несовпадающую строку, я направлю вас в чудесный мир документации difflib.

33
ответ дан 29 November 2019 в 20:03
поделиться

Вы уверены, что оба файла существуют?

Просто протестировал, и я получил идеальный результат.

Чтобы получить результаты, я использую что-то вроде:

import difflib

diff=difflib.ndiff(open(testFile).readlines(), open(comparisonFile).readlines())

try:
    while 1:
        print diff.next(),
except:
    pass

первый символ каждого линия указывает, отличаются ли они: например: '+' означает добавление следующей строки и т. д.

5
ответ дан 29 November 2019 в 20:03
поделиться

Похоже, вам может вообще не понадобиться diffflib. Если вы сравниваете построчно, попробуйте что-нибудь вроде этого:

test_lines = open("test.txt").readlines()
correct_lines = open("correct.txt").readlines()

for test, correct in zip(test_lines, correct_lines):
    if test != correct:
        print "Oh no! Expected %r; got %r." % (correct, test)
        break
else:
    len_diff = len(test_lines) - len(correct_lines)
    if len_diff > 0:
        print "Test file had too much data."
    elif len_diff < 0:
        print "Test file had too little data."
    else:
        print "Everything was correct!"
3
ответ дан 29 November 2019 в 20:03
поделиться
Другие вопросы по тегам:

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