我需要逐行比较两个文件。在每个文件中,该行只有1或-1,所以如果行相同,则不计算,如果它不同,则count = + 1.
例如:
File1 line1 = 1,file2 line1 = -1 然后计数= 1
File1 line2 = 1,file2 line2 = 1 不计算,所以算数保持1
我正在尝试用Python编写它,我知道如何在单个文件中读取行,但我真的很难逐行比较两个文件并发现差异。
如何做到这一点? 谢谢你的时间
答案 0 :(得分:0)
您可以使用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?
答案 1 :(得分:0)
文件是他们自己的迭代器,zip
将逐行读取它们,布尔值也是0和1,sum
将它们全部加在一起。所以......
print(sum(zipline[0]!=zipline[1]
for zipline in zip(open('file1'), open('file2'))))