この記事では、ファイルを比較する方法を解説します。
Python でファイルを比較するには、filecmpモジュール を使います。filecmpモジュール は、標準ライブラリなのでインポートするだけで使えます。
それでは、ファイルを比較する方法を見ていきましょう!
スポンサーリンク
ファイルを比較するには...
ファイルを比較するには、filecmpモジュール の cmp()関数 を使います。
import filecmp filecmp.cmp(f1, f2, shallow=True)
f1 と f2 に指定した名前のファイルを比較して同じファイルなら True、異なるファイルなら False を返します。
ファイルの内容で比較
cmp()関数 の shallow引数 に False を指定することでファイルの内容で比較することができます。
では、適当にファイルを 2つ作成して比較してみます。
text1.txt
あいうえお
text2.txt
あいうえお
main.py でファイルを比較してみます。
main.py
import filecmp r = filecmp.cmp('text1.txt', 'text2.txt') print(r)
実行結果
True
ファイルの内容が完全に一致すると True が返されます。
ファイルの状態(シグニチャ)で比較
cmp()関数 の shallow引数 に True を指定するかデフォルトでは、os.stat() で取得できるファイルのステータスで比較することができます。
2つのファイルをサイズが同じになるように編集します。
text1.txt
あいうえお
text2.txt
かきくけこ
main.py で shutil.copystat() を使ってファイルのステータスをコピーしてから比較してみます。
main.py
import filecmp import shutil # ファイルのステータスのコピー shutil.copystat('text1.txt', 'text2.txt') r = filecmp.cmp('text1.txt', 'text2.txt') print(r)
実行結果
True
ファイルの内容が異なってもステータスが同じならば同一のファイルとして認識されます。


