如何逐行比较统计两个文件的差异?
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'))))
我需要逐行比较两个文件。在每个文件中,该行只有 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'))))