3

Pythonで2つのテストファイルを比較したい(実際にはWindowsレジストリファイル(.reg)ですが、すべてテキストです)。2番目のファイルと同じではない最初の行だけでなく、2つのファイル間のすべての違いを探しています。前もって感謝します

4

3 に答える 3

2
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]]))

お役に立てれば

于 2012-04-17T19:04:59.583 に答える
1

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
于 2012-04-17T22:56:08.833 に答える
0

1回か2回だけ行う必要がある場合は、Gnu32Diffの使用を検討してください。OS XまたはLinuxがインストールされている場合は、vimdiff(別名、vim -dですが、vimがインストールされている場合は、vimdiffコマンドもインストールされます)を使用できます。これは、非常にシンプルで使いやすいものです。

于 2012-04-17T22:24:18.307 に答える