昨天我一直在執行一個檢查兩個文件之間差異的小Python腳本(使用difflib),如果有結果則打印結果,否則退出代碼0。什麼是Pythonic方法來測試發生器的大小,然後顯示它?
確切的方法,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!")
完美!處理髮電機時我會記住這個列表技巧! –