Go for it!

モーターサイクルと自転車とキャンプの日々。

python difflibが便利すぎる件

標準モジュールで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]