Python-使用循环比较两个文本文件和输出差异

问题描述 投票:0回答:1

第一个文件:这是文本。/nabc / n 123

第二个文件:这是文本。/nxyz / n 123

我正在执行一项任务,要求我打印(“否”),同时如果文件不同,还打印了第一文件和第二文件中不同的行部分。他们要我使用循环比较并找到差异,而不是打印差异并在找到差异后中断循环。我似乎无法到达文字的第二行以使我的情况成立。

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```
python file text while-loop difference
1个回答
0
投票

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')
© www.soinside.com 2019 - 2024. All rights reserved.