我想比較python中的兩個測試文件(實際上它們是Windows註冊表文件(.reg),但它們都是文本)。 即時通訊尋找兩個文件之間的所有差異,而不僅僅是第一個不同於第二個文件的第一行。 由於事先比較python中的兩個文本文件
回答
f1 = open(filepath1)
f2 = open(filepath2)
lines = f2.readlines()
for i,line in enumerate(f1):
if line != lines[i]:
print "line", i, "is different:"
print '\t', line
print '\t', lines[i]
print "\t differences in positions:", ', '.join(map(str, [c for c in range(len(line)) if line[c]!= lines[i][c]]))
希望這有助於
如果你在f1中有一個額外的行,它會報告之後的每一行都是不同的。逐行比較只有在文件大部分相同時纔有用,除了一些行內差異之外。 – 2012-04-17 23:20:18
我的問題就是你說的,我不希望發生這種情況。我只需要區別不只是如果第一行不匹配屏幕上的下一行打印作爲不匹配的行。 – user1229351 2012-04-18 03:45:08
如果您需要做的僅僅是一次或兩次,你可以考慮使用Gnu32Diff。如果您安裝了OS X或Linux,則可以使用vimdiff(也稱爲vim -d,但如果您安裝了vim,它還會安裝vimdiff命令),這非常簡單易用。
它應該是python script.not預編譯工具 – user1229351 2012-04-18 05:32:54
看看http://docs.python.org/library/difflib.html
下面是它如何工作的例子(儘管還有很多其他使用情況和輸出格式):
>>> s1 = ['bacon\n', 'eggs\n', 'ham\n', 'guido\n']
>>> s2 = ['python\n', 'eggy\n', 'hamster\n', 'guido\n']
>>> for line in unified_diff(s1, s2, fromfile='before.py', tofile='after.py'):
... sys.stdout.write(line)
--- before.py
+++ after.py
@@ -1,4 +1,4 @@
-bacon
-eggs
-ham
+python
+eggy
+hamster
guido
- 1. 比較python中的兩個文件?
- 2. 比較python中的兩個xml文件
- 3. 比較Unix中兩個文本文件的比較函數
- 4. Linux的比較兩個文本文件
- 5. 比較python中的兩個文本文件
- 6. 在python中比較兩個文本文件的行
- 7. 在Python中比較兩個大文件
- 8. 比較兩個文本文件
- 9. 比較兩個文本文件相互
- 10. 在Python中逐列比較兩個大型文本文件
- 11. Python的比較兩個文件部分
- 12. 比較兩個CSV文件的Python
- 13. 比較csv文件中的兩行 - Python
- 14. DUnit比較兩個文本文件並顯示比較
- 15. Python比較兩個csv文件
- 16. 使用python比較兩個文件3
- 17. 比較兩個文件與Python
- 18. Python如何比較兩個文件行
- 19. Python CSV比較兩個文件?
- 20. 比較兩個文件行與python
- 21. python中兩個文檔的比較
- 22. 比較兩個文本框
- 23. 比較兩個文本
- 24. 比較兩個文本php
- 25. 比較兩個文本文件使用python
- 26. 兩個文件夾的文件比較
- 27. 如何比較python中兩個不同文件中的兩個圖像文件
- 28. 使用shell腳本比較兩個文件夾中的文件
- 29. Excel - 比較兩個文件?
- 30. 比較兩個文件
[difflib(HTTP://docs.python .org/library/difflib.html#module-difflib)可能很有趣 – mensi 2012-04-17 19:15:35