Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでstat()の結果を読み解く方法|os.stat()の各属性を徹底解説

Pythonのos.stat()メソッドは、OSモジュールに含まれる関数の一つで、ファイルやディレクトリに関するさまざまな情報を取得するために使用されます。たとえば、ファイルのサイズ(バイト単位)や、ユーザー定義のフラグ情報などを知りたい場合に便利です。

os.stat()で取得できる主な属性

stat()の実行結果として返されるオブジェクトには、以下のような属性が含まれています。それぞれの意味を見ていきましょう。

  • st_size ― ファイルのサイズをバイト単位で表します。

  • st_atime ― 最後にアクセスされた時刻を表します。単位は秒です。

  • st_ctime ― Unix系OSでは最後にメタデータが変更された時刻、Windowsでは作成時刻を表します。単位は秒です。

  • st_mtime ― ファイルの内容が最後に変更された時刻を表します。単位は秒です。

  • st_blocks ― ファイルに割り当てられた512バイトブロックの数を表します。

  • st_uid ― ファイル所有者のユーザーIDを表します。

  • st_gid ― ファイル所有者のグループIDを表します。

  • st_dev ― ファイルが存在するデバイスの識別子を表します。

  • st_ino ― ファイルのiノード番号を表します。

  • st_mode ― ファイルの種類やアクセス権限(パーミッション)に関する情報を表します。

  • st_nlink ― ハードリンクの数を表します。

  • st_flags ― ユーザー定義のファイルフラグを表します。

サンプルコード

以下のプログラムでは、実際にos.stat()を使ってファイルの状態情報を取得し、その結果を出力しています。

import os

# 対象となるファイルを選択
path = 'E:\\customers.csv'

# ステータス情報を取得
status = os.stat(path)

# 結果を表示
print(status)

実行結果

上記のコードを実行すると、次のような出力が得られます。

os.stat_result(st_mode=33206, st_ino=1125899906970419, st_dev=1614938858, st_nlink=1, st_uid=0, st_gid=0, st_size=261693, st_atime=1593271710, st_mtime=1593271710, st_ctime=1593271710)

結果の読み方

この出力から、たとえば以下のことが分かります。

  • st_size=261693 ― ファイルサイズは約261KB(261,693バイト)です。

  • st_atime / st_mtime / st_ctime = 1593271710 ― アクセス時刻・更新時刻・作成時刻がすべて同じUNIXタイムスタンプ(2020年6月27日頃)であることを示しています。

  • st_uid=0, st_gid=0 ― 所有者はrootユーザー(管理者)であることを意味します。

  • st_nlink=1 ― このファイルへのハードリンクは1つだけです。

このように、os.stat()を使えばファイルの詳細なメタデータを簡単に取得でき、ファイル管理やシステム監視などの用途に活用できます。

  1. Pythonのbase64モジュールを使ったデータエンコード・デコード入門

    PythonにおけるBase64エンコーディングとはPython標準ライブラリのbase64モジュールは、バイナリデータをプレーンテキスト(ASCII)プロトコルで安全に送信できる形式へ変換するための機能を提供します。メール送信、URLへの埋め込み、HTTP POSTリクエストなど、テキストベースの通信経路でバイナリデータを扱いたい場面で活躍するモジュールです。このモジュールが実装しているのは、RFC 3548で定義されたBase16、Base32、Base64の各アルゴリズム、および事実上の標準となっているAscii85とBase85のエンコーディングです。RFC 3548準拠のエンコーディ

  2. Pythonで作るWebサイトブロッカー ― 業務時間中にSNSへのアクセスを自動遮断する方法

    大手IT企業で働いたことがある方なら、FacebookやYouTube、InstagramといったSNS系のWebサイトが社内からアクセスできないよう制限されていることに気づいた経験があるかもしれません。こうした制限は、サードパーティ製アプリに頼らなくても実現できます。自分専用のオリジナルツールを作れば、好きなWebサイトを自由にブロックできるのです。しかもPythonでWebサイトブロッカーを開発するのは、それほど難しいことではありません。この記事では、指定したWebサイトをブロックするPythonスクリプトの作り方を解説します。前提条件Python 3.x がインストールされていることPy