Python|ファイルのメタデータを取得する

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つのファイルで確認し、慣れたらディレクトリ内の一括処理などにも挑戦してみましょう!

 

タイトルとURLをコピーしました