2012-03-04 71 views
1

我正在使用Python的diff-match-patch庫。如何使用diff_match_patch獲取diff中的所有行?

假設我這兩個文件進行比較(前面加上 'Z' 上線)

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 
cccccccccccccccccccccccccccccccccccccccccccccccccccccccc 

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
Zbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 
cccccccccccccccccccccccccccccccccccccccccccccccccccccccc 

產生的差異是:

@@ -50,16 +50,17 @@ 
aaaaaaa%0A 
+Z 
bbbbbbbb 

的問題是,diff不能包含所有的行。 我想類似的東西

@@ -50,16 +50,17 @@ 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa%0A 
+Z 
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 

我怎麼能使用diff_match_patch的差異都行?

回答

1

這顯然是一個FAQ。將JS示例轉換爲Python會導致以下輸出:

@@ -54,65 +54,66 @@ 
aaa%0A 
-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb%0A 
+Zbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb%0A 
cccc 

這仍然不理想,但略好一些。

+0

是的,diff_match_patch庫已經有了這個方法,但是它不能正常工作,奇怪。 ,它似乎更好:)謝謝 – 2012-03-05 07:04:43

0
+0

difflib沒有辦法制作補丁並應用它們來檢測兩個文件之間的某些衝突。我不能。 – 2012-03-04 16:59:48

+0

你有沒有看過這個python patch util?我認爲它可以修補difflib差異,但我沒有嘗試過。 http://code.google.com/p/python-patch/ – 2012-03-05 08:24:53

+0

是的,但是沒有文檔:( – 2012-03-08 08:08:53

相關問題