Python PR

【Python】ファイルを比較する方法を解説

記事内に商品プロモーションを含む場合があります

この記事では、ファイルを比較する方法を解説します。

Python でファイルを比較するには、filecmpモジュール を使います。filecmpモジュール は、標準ライブラリなのでインポートするだけで使えます。

それでは、ファイルを比較する方法を見ていきましょう!

ファイルを比較するには...

ファイルを比較するには、filecmpモジュール の cmp()関数 を使います。

import filecmp

filecmp.cmp(f1, f2, shallow=True)

f1f2 に指定した名前のファイルを比較して同じファイルなら 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.pyshutil.copystat() を使ってファイルのステータスをコピーしてから比較してみます。

main.py

import filecmp
import shutil

# ファイルのステータスのコピー
shutil.copystat('text1.txt', 'text2.txt')

r = filecmp.cmp('text1.txt', 'text2.txt')
print(r)

実行結果

True

ファイルの内容が異なってもステータスが同じならば同一のファイルとして認識されます。