Python - Сравнение двух текстовых файлов и выходных различий с использованием циклов - PullRequest
0 голосов
/ 17 февраля 2020

Первый файл: Это текст ./n abc / n 123

Второй файл: Это текст ./n xyz / n 123

Я выполняю задание, которое просит меня напечатать («Нет»), а также распечатать часть строки, которая отличается как в первом, так и во втором файле, если файл отличается. Они просят меня использовать циклы для сравнения и нахождения различий, чем печатать различия и ломать l oop, если различия найдены. Кажется, я не могу добраться до второй строки текста, чтобы выполнить мое условие.

secondFile = input("Enter the second file name: ")
first = open(firstFile, 'r')
second = open(secondFile, 'r')
if first.read() == second.read():
    print("Yes")
else:
    print("No")
    while True:
        firstLine = first.readline()
        secondLine = second.readline()
        if firstLine == secondLine:
            print(first.readline())
            print(second.readline())
            break```

1 Ответ

1 голос
/ 17 февраля 2020

second.read() содержит все данные из файла, поэтому, как только вы достигнете first.readline(), вы получите только пустые строки. Прочитайте файл построчно и напечатайте «Да», только если все строки, где уже сравниваются, используют for else. Вы также должны закрыть файлы, как только это будет сделано, вы можете сделать это с помощью with

with open(firstFile, 'r') as file1, open(secondFile, 'r') as file2:
    for line1, line2 in zip(file1, file2):
        if line1 != line2:
            print('No', line1, line2, sep='\n')
            break
    else:
        print('Yes')
...