Pythonには、文字列の差分を扱うための標準モジュールであるdifflib
があります。このモジュールは、2つのテキストファイルや文字列の間の差分を検出するためのツールや手法を提供します。
difflibモジュールの主なクラスと機能
difflib
モジュールには、いくつかのクラスと機能が含まれています。
- Differクラス: ファイルの比較が可能
- HtmlDiffクラス: HTML形式で差分を表示
- SequenceMatcherクラス: 文字列やリストの比較・類似度計算
Differクラスを使ったファイル比較の手順
以下に、Differクラスを使用してテキストファイルの差分を比較する例を示します。
import difflib
# 比較する2つのテキストデータ
text1 = """
Hello, world!
This is a sample text.
Goodbye, world!
"""
text2 = """
Hello, everyone!
This is a sample text.
Goodbye, world!
"""
# Differオブジェクトの作成
differ = difflib.Differ()
# テキストデータの比較
result = differ.compare(text1.splitlines(), text2.splitlines())
# 比較結果の表示
for line in result:
print(line)
このコードを実行すると、text1
とtext2
の間の差分が行単位で表示されます。
まとめ
Pythonのdifflib
モジュールは、テキストデータの差分を抽出したり、比較結果を整形して出力したりするために使用されます。このモジュールは、テキストファイルの比較だけでなく、文字列やリストなどのシーケンスデータの比較にも適しています。