Я получил эту проблему, когда пров-файл был удален. Я создаю файл обеспечения, и он исправлен.
Для начала вам нужно передать в difflib.SequenceMatcher строки, а не файлы:
# Like so
difflib.SequenceMatcher(None, str1, str2)
# Or just read the files in
difflib.SequenceMatcher(None, file1.read(), file2.read())
Это все равно исправит вашу ошибку. Чтобы получить первую несовпадающую строку, я направлю вас в чудесный мир документации difflib.
Вы уверены, что оба файла существуют?
Просто протестировал, и я получил идеальный результат.
Чтобы получить результаты, я использую что-то вроде:
import difflib
diff=difflib.ndiff(open(testFile).readlines(), open(comparisonFile).readlines())
try:
while 1:
print diff.next(),
except:
pass
первый символ каждого линия указывает, отличаются ли они: например: '+' означает добавление следующей строки и т. д.
Похоже, вам может вообще не понадобиться 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!"