如何逐行比较统计两个文件的差异?

How to compare and count the differences between two files line by line?

我需要逐行比较两个文件。在每个文件中,该行只有 1 或 -1,所以如果行相同,则不要计数,如果不同,则计数 =+1.

例如:

文件 1 第 1 行= 1 , 文件 2 第 1 行 =-1 然后计数 = 1

文件1第2行=1,文件2第2行=1 不计数,所以计数保持 1

我正在尝试将它写在 Python 中,我知道如何在单个文件中读取行,但我真的很难逐行比较两个文件并找出差异。

如何做到这一点? 感谢您的宝贵时间

您可以使用 zip (https://docs.python.org/3.3/library/functions.html#zip)

count = 0

with open(file1name) as file1, open(file2name) as file2:
    for line_file_1, line_file_2 in zip(file1, file2):
        if line_file_1 != line_file_2:
            count += 1

请注意,此示例假定您的文件具有相同的行数。 另外,这里已经回答了这个问题:How to iterate across lines in two files simultaneously?

文件是它们自己的迭代器,zip 会逐行读取它们,布尔值也是 0 和 1,sum 将它们加在一起。所以...

print(sum(zipline[0]!=zipline[1] 
    for zipline in zip(open('file1'), open('file2'))))