我有兩個文件,稱爲源和目標。我比較源中的每個元素以檢查它是否也存在於目標中。如果它不存在於目標中,我將它打印出來(最終目標是有0的差異)。這是我寫的代碼。比較Python中的文件內容
def finddefaulters(source,target): f = open(source,'r') g = open(target,'r') reference = f.readlines() done = g.readlines() for i in reference: if i not in done: print i,
我需要
- 幫助,這將如何代碼在額定1-10
- 規模我怎樣才能使它更好,最佳,如果文件大小是巨大的。
另一個問題 - 當我將所有行讀作列表元素時,它們被解釋爲'element \ n' - 所以爲了正確比較,我必須在每個文件的末尾添加一個換行符。有沒有辦法去掉換行符,所以我不必在文件末尾添加換行符。我試過rstrip。但它沒有奏效。 在此先感謝。
'done = g.readlines()'創建一個列表。 '如果我沒有完成'在列表中搜索。多次。看看'set()'。 – eumiro 2011-03-22 14:30:29
您似乎在重新創建[diff](http://docs.python.org/library/difflib.html) – 2011-03-22 14:31:25
除了其他所有內容之外,「f」和「g」對於您的變量來說都是可怕的名稱。稱他們是明智的。 「我」也可以改進。 – 2011-03-22 14:32:54