Categories: Python

【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

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

ゆうまる

独学でプログラミングを勉強しているおじさん。いろんな言語を勉強したが浅く広くなためあまり仕事につながらない。また忘れっぽいため自分のブログを備忘録としても使っている。産まれてこのかたずっとネコを飼ってる生粋のネコ派。最近お腹が出てきて筋トレに奮闘中!

Recent Posts

【Python】任意の秒数だけ処理を一時停止する方法【sleep()関数】

この記事では、Pythonで任意の秒数だ…

7か月 ago

【Python】Wordの文書の新規作成と読み書き

この記事では、Pythonを使ってWor…

7か月 ago

【Python】メタクラスって結局なんなの?

この記事では、Pythonのメタクラスに…

7か月 ago

【Unity】割合から数値に数値から割合に変換する

この記事では、割合から数値に変換する関数…

7か月 ago

【Python】抽象クラスを定義する方法

この記事では、Pythonで抽象クラスを…

7か月 ago