昨天我一直在实现一个小的 Python 脚本,它检查两个文件之间的差异(使用 difflib),如果有则打印结果,否则以代码 0 退出。
精确的方法difflib.unified_diff()
是在找到的差异上返回一个生成器。如何测试此生成器以查看是否需要打印?我尝试使用len()
,sum()
查看此生成器的大小,但无法打印。
很抱歉问了这么一个愚蠢的问题,但我真的不明白在这个话题上有什么好的做法。
到目前为止,这就是我正在做的
import difflib
import sys
fromlines = open("A.csv").readlines()
tolines = open("B.csv").readlines()
diff = difflib.unified_diff(fromlines, tolines, n=0)
if (len(list(diff))):
print("Differences found!")
# Recomputing the generator again: how stupid is that!
diff = difflib.unified_diff(fromlines, tolines, n=0)
sys.stdout.writelines(diff)
else:
print("OK!")