使用python匹配或不匹配的文本文件比较?

时间:2017-12-19 20:55:36

标签: python

我有两个要比较的文本文件,输出匹配或不匹配。我的节目输出"不匹配"即使我尝试比较相同的文本文件而不是将输出作为匹配。

pthread_create

1 个答案:

答案 0 :(得分:1)

逐行比较两个文件时,不应使用嵌套循环。例如,

fragment

这意味着,“对于for l1 in f1: for l1 in f2: ... 中的每一行,将该行与f1中的每一行进行比较”,这在语义上没有意义。

您应该做的是比较相应的行。最简单的方法是使用f2

zip

这意味着“将for l1, l2 in zip(f1, f2): ... 中的每一行与f1中的相应行进行比较”,这是有道理的。

接下来,您似乎只想查看两行是否相等,并相应地打印一条消息。在这种情况下,您可以使用f2语句缩短比较时间。使用break成语,因此您不需要标记或计数器。

for...else

for l1, l2 in zip(f1, f2): if l1 != l2: print('not matched') break else: print "matched" 仅在循环自然退出时运行 - 换句话说,在未遇到else时运行。

但是,如果您要检索所有不相等的行的计数,则可以使用break生成器理解 -

sum

这里的想法是你可以在diff = sum(1 for l1, l2 in zip(f1, f2) if l1 != l2) print('not matched' if diff else 'matched') 之后做一些有用的事情。