プログラミング

Pythonでファイルの差分を抽出し結果をhtmlとして出力する

こんにちは ゆゆう(@yuyuublog) です。

Pythonで2つのファイルの差分を抽出し、結果をhtmlとして出力する機会がありました。

その際のコードを共有します。

実装コード

from difflib import HtmlDiff

# 比較ファイルを開く
with open('file1.txt','r') as f:
    file1 = f.readlines()

with open('file2.txt','r') as f:
    file2 = f.readlines()

# 比較結果HTMLを作成
df = HtmlDiff()
with open('diff.html','w') as html:
    html.writelines(df.make_file(file1, file2))

比較ファイル

file1.txt

あああああ
いいいいい
ううううう
えええええ
おおおおお
かかかかか
くくくくく
けけけけけ
こここここ

file2.txt

あああああ
いいいいい
ううううう
ううううう
えええええ
おおおおお
かかかかか
ききききき
くくくくく
けけけけけ
こここここ

比較結果

説明

Python ではdifflibモジュールを利用することで、簡単にファイルの差分を取得することができます。

今回は比較結果をHTMLで出力しています。

まず、difflibモジュールを利用するため、difflibをimportします。

from difflib import HtmlDiff

次に比較対象のファイルをopenします。

今回はfile1.txtとfile2.txt のファイルを読み込みしています。

# 比較ファイルを開く
with open('file1.txt','r') as f:
    file1 = f.readlines()

with open('file2.txt','r') as f:
    file2 = f.readlines()

そして、差分結果をmake_file()でHTMLとして取得します。

diff.html を書き込みモードで開き、取得したHTMLをwritelines()で保存します。

# 比較結果HTMLを作成
df = HtmlDiff()
with open('diff.html','w') as html:
    html.writelines(df.make_file(file1, file2))

これで、diff.htmlという名前のファイルが作成されます。

まとめ

以上で、ファイルの比較結果をHTML形式で作成することができます。

ありがとうございました。

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA