如何逐行比较和计算两个文件之间的差异?

时间:2018-04-04 20:14:55

标签: python-3.x file count compare readline

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

例如:

File1 line1 = 1,file2 line1 = -1 然后计数= 1

File1 line2 = 1,file2 line2 = 1 不计算,所以算数保持1

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

如何做到这一点? 谢谢你的时间

2 个答案:

答案 0 :(得分:0)

您可以使用ziphttps://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?

答案 1 :(得分:0)

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

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