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

【Dart】コンストラクタのデフォルト引数について

Dartのコンストラクタのデフォルト引数…

2週間 ago

【Unity】有料アセットを無料で手に入れる方法

この記事では、Unityの有料アセットを…

4か月 ago

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

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

1年 ago

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

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

1年 ago

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

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

1年 ago