🔍

Python でテキストファイルを比較して差分を Html に書き出す

2022/05/29に公開

環境:

> python --version

Python 3.9.5

完成形


青空文庫の『吾輩は猫である』を使用

変更のない行を非表示にすることもできます。

やっていること

  1. difflibHtmlDiff で Html 形式の表を生成する
  2. テンプレートとして用意しておいた Html に 1. で生成した内容を埋め込む
  3. css で表示を加工する
    • 文字列置換で整形することも考えたものの、比較する文字などの必要な文字は置換されないようにしなくてはならないなど検討事項が多すぎて保留中…

フォルダ構成

> ls -name

diff.py
template.html
wrap.css

使い方

全部の行を表示する
python neko_1.txt neko_2.txt out.html
変更のない行は省略する
python neko_1.txt neko_2.txt out.html --compress

第1引数に元のファイル、第2引数に変更後のファイル、第3引数に出力ファイル名を指定します。 --compress のオプションをつけると変更のない行が省略されるようにしてみました。

コード

https://github.com/AWtnb/PowerShell/tree/master/cmdlets/python/diff_as_html/horizontal


これで比較結果を紙に印刷して配布するようなことになっても安心!

Discussion