2009-08-26 300 views
8

我知道我可以使用cmp,diff等來比較兩個文件,但是我在尋找的是一個實用程序,它使兩個文件之間的百分比差異成爲可能。兩個文本文件之間的百分比差異

如果沒有這樣的效用,任何算法都可以。我已閱讀了關於模糊編程的內容,但我並不完全理解它。

+0

你如何定義「百分比差異」?你如何解釋缺失,額外和交換的字符/單詞/行? – 2009-08-26 14:51:35

+1

文件中不會有任何交換的字符或文字或行。這兩個文件是日誌文件,一個日誌文件就是所有日誌文件,這意味着系統運行完好。在每個小時內寫入新的日誌。所以我想將新寫入的日誌與標準日誌進行比較。如果新日誌與標準日誌不同,請發送給級別{X}的支持工程師。現在清楚了嗎? – Mohamed 2009-08-26 22:01:35

+0

請參閱:http://stackoverflow.com/questions/145607/text-difference-algorithm – tzot 2009-09-16 02:58:21

回答

26

可以使用difflib.SequenceMatcher ratio方法

從文檔:

返回的 序列相似性爲浮點數的量度 範圍[0,1]。

例如:

from difflib import SequenceMatcher 
text1 = open(file1).read() 
text2 = open(file2).read() 
m = SequenceMatcher(None, text1, text2) 
m.ratio() 
+0

謝謝我不知道庫的那一部分。 – Mohamed 2009-08-28 21:16:04

0

Beyond Compare具有非常不錯的文件差異統計數據導出到CSV。在線級別的差異被報告,所以比較源代碼文件是很好的。

相關問題