この記事では、Pythonを用いてディレクトリとファイルのメタデータを取得する方法を解説します。具体的なコード例とその解説、さらに応用例を3つ以上紹介しています。
目次
なぜメタデータを取得するのか
メタデータの取得は、ファイルやディレクトリの属性情報を知るために重要です。これにより、ファイルの生成日時、更新日時、サイズ、パーミッションなどの詳細情報を得ることができます。特に大規模なプロジェクトやシステムの管理においては、このような情報が非常に有用です。
基本的な方法
Pythonの`os`モジュールを使用して、基本的なファイルやディレクトリのメタデータを取得する方法を見ていきましょう。
import os
# メタデータを取得
metadata = os.stat('example.txt')
# メタデータから特定の情報を取得
file_size = metadata.st_size # ファイルサイズ
last_modified = metadata.st_mtime # 最終更新時間
print(f'ファイルサイズ: {file_size} bytes')
print(f'最終更新時間: {last_modified}')
コードの解説
– `os.stat()`関数は、指定されたパスのメタデータを取得します。
– `st_size`でファイルのサイズを取得できます。
– `st_mtime`で最終更新時間を取得できます。
応用例
複数のファイル・ディレクトリのメタデータを一括で取得
import os
# 対象のディレクトリ
target_dir = 'example_directory/'
# ディレクトリ内のファイルとサブディレクトリを一覧
for filename in os.listdir(target_dir):
metadata = os.stat(os.path.join(target_dir, filename))
print(f'{filename} - サイズ: {metadata.st_size} bytes')
パーミッションを取得と設定
import os
# メタデータを取得
metadata = os.stat('example.txt')
# パーミッションを取得
permissions = oct(metadata.st_mode)[-3:]
print(f'パーミッション: {permissions}')
# パーミッションを変更(例:755に設定)
os.chmod('example.txt', 0o755)
特定の拡張子を持つファイルのメタデータのみ取得
import os
# 対象のディレクトリと拡張子
target_dir = 'example_directory/'
extension = '.txt'
for filename in os.listdir(target_dir):
if filename.endswith(extension):
metadata = os.stat(os.path.join(target_dir, filename))
print(f'{filename} - サイズ: {metadata.st_size} bytes')
まとめ
Pythonでディレクトリやファイルのメタデータを取得する方法は多く、`os`モジュールがその主要な手段となります。基本的な属性からパーミッションの設定、特定の条件にマッチするファイルのメタデータの取得まで、多くのことが可能です。
コメント