標準モジュールでdiffライブラリ入ってる言語初めて見た。 python2.5以降で使える。
[ad#text_only_square]
difflibの使い方はこんなかんじ。
[code lang=‘python’]
-- coding: utf-8 --
for python 2.5 or later
diffに食わせるデータ
a=‘abc\ndef\nhij’ b=‘abc\nd555ef\nhij’
import difflib
食わせる文字はlistじゃないとダメなので成形
a=a.splitlines() b=b.splitlines()
print ‘context_diff format’ for buf in difflib.context_diff(a, b): print buf
print ‘\n\n’ print ‘unified_diff format’ for buf in difflib.unified_diff(a,b): print buf
print ‘\n\n’ print ‘ndiff format’ for buf in difflib.ndiff(a,b): print buf [/code]
出力結果。
% python diff.py context_diff format *** --- *************** *** 1,3 **** abc ! def hij --- 1,3 ---- abc ! d555ef hij unified_diff format --- +++ @@ -1,3 +1,3 @@ abc -def +d555ef hij ndiff format abc - def + d555ef hij
便利だ…。
[ad#text_wide]