Pythonでディレクトリとファイルのメタデータを取得する完全ガイド

この記事では、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`モジュールがその主要な手段となります。基本的な属性からパーミッションの設定、特定の条件にマッチするファイルのメタデータの取得まで、多くのことが可能です。

コメント

コメントする

目次