1. はじめに
Pythonでは、ファイルのサイズや作成日時、最終更新日時などの「メタデータ」を簡単に取得することができます。これらの情報は、ログの管理、ファイルの整理、自動バックアップなど、さまざまな実務に役立ちます。
本記事では、「Python|ファイルのメタデータを取得する」方法を、初心者にもわかりやすく解説していきます。基本的な使い方から応用例まで、具体的なコードと実行結果付きで紹介します。
2. Pythonでファイルのメタデータを取得する基本
2-1. メタデータとは?
ファイルのメタデータとは、以下のような「ファイル自体の情報」のことを指します。
- ファイルサイズ
- 作成日時(Windows)
- 最終アクセス日時
- 最終更新日時
- パーミッション情報(UNIX系)
Pythonでは、主に os
モジュールや pathlib
モジュールを使ってこれらの情報を取得できます。
2-2. os.stat() を使った基本的な取得
import os
import time
# 対象のファイルパス
file_path = "example.txt"
# ファイルのメタデータを取得
stat_info = os.stat(file_path)
# 各種メタデータの表示
print("ファイルサイズ:", stat_info.st_size, "バイト")
print("最終更新日時:", time.ctime(stat_info.st_mtime))
print("最終アクセス日時:", time.ctime(stat_info.st_atime))
print("作成日時(Windows):", time.ctime(stat_info.st_ctime))
実行結果:
ファイルサイズ: 128 バイト
最終更新日時: Mon Jul 15 10:30:05 2025
最終アクセス日時: Mon Jul 15 10:30:10 2025
作成日時(Windows): Sun Jul 14 22:10:02 2025
3. よくある使い方・応用例
3-1. ファイル一覧のメタデータを一括取得する
import os
import time
# 対象ディレクトリ
target_dir = "sample_folder"
# ディレクトリ内のファイルをループ処理
for filename in os.listdir(target_dir):
filepath = os.path.join(target_dir, filename)
if os.path.isfile(filepath):
stat = os.stat(filepath)
print(f"ファイル名: {filename}")
print(f" サイズ: {stat.st_size} バイト")
print(f" 更新日時: {time.ctime(stat.st_mtime)}")
実行結果:
ファイル名: report.txt
サイズ: 352 バイト
更新日時: Mon Jul 15 10:12:32 2025
ファイル名: data.csv
サイズ: 1042 バイト
更新日時: Sun Jul 14 20:01:47 2025
3-2. Pathlibでより直感的に書く
from pathlib import Path
# 対象ファイル
path = Path("example.txt")
print("サイズ:", path.stat().st_size, "バイト")
print("更新日時:", path.stat().st_mtime)
実行結果:
サイズ: 128 バイト
更新日時: 1720971605.0
※ st_mtime
などはUnixタイムスタンプで取得されるため、time.ctime()
で変換すると見やすくなります。
4. 注意点・エラー対策
4-1. ファイルが存在しない場合のエラー
ファイルが存在しないと FileNotFoundError
が発生します。事前に os.path.exists()
や Path.exists()
でチェックしましょう。
from pathlib import Path
file = Path("not_found.txt")
if file.exists():
print(file.stat().st_size)
else:
print("ファイルが存在しません")
実行結果:
ファイルが存在しません
4-2. WindowsとUnixで取得できる情報の違い
st_ctime
(作成日時)はWindowsでは「作成日時」ですが、Unix系では「inode変更日時」になります。- クロスプラットフォームで扱う際は注意が必要です。
5. まとめ
本記事では、Pythonでファイルのメタデータを取得する方法を紹介しました。
os.stat()
やpathlib.Path.stat()
を使って、サイズ・更新日時などが取得可能- 実務では、ログの確認、ファイル整理、自動処理の前提条件確認などに活用できる
- 存在チェックやOSの違いによる挙動の差にも注意が必要
学習のコツ:最初は1つのファイルで確認し、慣れたらディレクトリ内の一括処理などにも挑戦してみましょう!