カテゴリ: Python 更新日: 2025/10/20

Pythonでファイルの更新日やサイズを取得する方法!初心者でもわかるos.stat()の使い方

Pythonでファイルの更新日やサイズを取得する方法(os.stat() の使い方)
Pythonでファイルの更新日やサイズを取得する方法(os.stat() の使い方)

先生と生徒の会話形式で理解しよう

生徒

「Pythonでファイルの情報って調べられますか?たとえば更新日時とかサイズとか…」

先生

「はい、できますよ!os.stat()という関数を使えば、ファイルのサイズや最終更新日、作成日時などを取得できます。」

生徒

「おお…なんか難しそう。でも知っておきたいです!」

先生

「大丈夫です。初心者向けに丁寧に説明しますね。まずは基本から見ていきましょう!」

-

1. os.stat()とは?

1. os.stat()とは?
1. os.stat()とは?

os.stat()は、Pythonでファイルやフォルダの情報を取得できる便利な関数です。ファイルサイズ(バイト単位)や、最終更新日時、作成日時など、さまざまな情報をまとめて取り出すことができます。

この関数はosモジュールに含まれているので、まずはimport osしてから使います。

2. ファイルサイズを取得する方法

2. ファイルサイズを取得する方法
2. ファイルサイズを取得する方法

ファイルのサイズはst_sizeという属性から取得できます。単位はバイト(B)です。


import os

info = os.stat("sample.txt")
print("ファイルサイズ:", info.st_size, "バイト")

このようにすることで、指定したファイルのサイズを確認できます。KB(キロバイト)で見たい場合は、st_size / 1024で計算しましょう。

3. 更新日時を取得する方法

3. 更新日時を取得する方法
3. 更新日時を取得する方法

os.stat()で取得できる日時は3種類あります:

  • st_atime:アクセス日時(最後に読まれた時刻)
  • st_mtime:更新日時(最後に変更された時刻)
  • st_ctime:作成日時(※OSにより意味が異なる)

日時の値は「エポック秒」と呼ばれる形式なので、datetimeモジュールで見やすい形式に変換します。


import os
from datetime import datetime

info = os.stat("sample.txt")

print("更新日時:", datetime.fromtimestamp(info.st_mtime))

これで、「2025-09-03 12:34:56」のように、人間にもわかりやすい形式で表示されます。

4. ファイルの作成日時を調べるには?

4. ファイルの作成日時を調べるには?
4. ファイルの作成日時を調べるには?

st_ctimeは、Windowsでは「作成日時」を示しますが、LinuxやMacでは「ファイルの属性が最後に変更された時刻」になります。

そのため、正確な「作成日時」を取得したい場合は、OSによって意味が変わることに注意が必要です。


print("作成日時:", datetime.fromtimestamp(info.st_ctime))
-

5. ファイル情報をまとめて表示するプログラム

5. ファイル情報をまとめて表示するプログラム
5. ファイル情報をまとめて表示するプログラム

それでは、これまでの知識を使って、ファイルのサイズ・更新日・作成日をまとめて表示する簡単なスクリプトを作ってみましょう。


import os
from datetime import datetime

def show_file_info(path):
    info = os.stat(path)
    print("ファイル名:", path)
    print("サイズ:", info.st_size, "バイト")
    print("最終更新日:", datetime.fromtimestamp(info.st_mtime))
    print("作成日:", datetime.fromtimestamp(info.st_ctime))

show_file_info("sample.txt")

このプログラムを使えば、複数のファイルを調べることも簡単にできます。

6. 複数ファイルの情報を一括取得する方法

6. 複数ファイルの情報を一括取得する方法
6. 複数ファイルの情報を一括取得する方法

たとえば、あるフォルダの中にあるすべてのファイルの情報を一括で取得したい場合は、os.listdir()と組み合わせます。


folder = "documents"

for filename in os.listdir(folder):
    path = os.path.join(folder, filename)
    if os.path.isfile(path):
        show_file_info(path)

このようにすれば、フォルダ内のすべてのファイルに対して、更新日時やサイズを取得できます。

7. 単位をわかりやすくする工夫

7. 単位をわかりやすくする工夫
7. 単位をわかりやすくする工夫

ファイルサイズはバイトで表示されますが、「12345678バイト」と言われても、ピンとこないですよね。そんなときは、KBやMB単位に変換しましょう。


size_kb = info.st_size / 1024
size_mb = info.st_size / (1024 * 1024)

print("サイズ(KB):", round(size_kb, 2))
print("サイズ(MB):", round(size_mb, 2))

round()で小数点を調整して、見やすい表示にできます。

8. ファイルが存在するかどうかを事前に確認しよう

8. ファイルが存在するかどうかを事前に確認しよう
8. ファイルが存在するかどうかを事前に確認しよう

対象のファイルが存在しない場合、os.stat()を使うとエラーになります。事前にos.path.exists()でチェックしておきましょう。


import os

if os.path.exists("sample.txt"):
    info = os.stat("sample.txt")
else:
    print("ファイルが存在しません")

このように安全確認を入れておけば、初心者でも安心してファイル操作ができます。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
カテゴリの一覧へ
新着記事
PHPでセッションを使ってフォーム入力を保持する方法を解説!初心者向けステップバイステップ
Pythonで文字列をリストに変換する方法!split()とjoin()の使い方
Pythonの変数とは?定義方法とデータ型を初心者向けに解説
PHPでメールフォームを作る方法を徹底解説!初心者向けにmail関数とPHPMailerの使い方も紹介
人気記事
No.1
PHP&Python記事人気No1
Pythonでテキストファイルを1行ずつ読み込む方法(readline() / readlines())
No.2
PHP&Python記事人気No2
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.3
PHP&Python記事人気No3
Pythonのリストを辞書に変換する方法(dict() / zip())
No.4
PHP&Python記事人気No4
初心者向けにPHP でファイルを開く・読み込む・書き込む方法(fopen, fwrite, fread)を解説する記事
-