この記事では、ファイルを比較する方法を解説します。
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
ファイルの内容が異なってもステータスが同じならば同一のファイルとして認識されます。