例えば:
import os
print(os.listdir("path/to/dir"))
ディレクトリ内のファイルを一覧表示します。
ディレクトリ内のすべてのファイルのファイル変更時刻を取得するにはどうすればよいですか?
ディレクトリ内のすべてのファイルのファイル属性を検索するときに、Python 3.5 以降を使用している場合は、os.scandir()
関数を使用して、ファイル属性を組み合わせたディレクトリ リストを取得します。os.listdir()
これは、ファイル属性を個別に使用して取得するよりも効率的である可能性があります。
import os
with os.scandir() as dir_entries:
for entry in dir_entries:
info = entry.stat()
print(info.st_mtime)
DirEntry.stat()
関数を Windows で使用する場合、追加のシステム コールを行う必要はありません。ファイルの変更時間は既に利用可能です。データはキャッシュされるため、追加のentry.stat()
呼び出しによって追加のシステム コールが作成されることはありません。
pathlib
モジュールObject Oriented instances を使用して同じことを実現することもできます。
from pathlib import Path
for path in Path('.').iterdir():
info = path.stat()
print(info.st_mtime)
以前のバージョンの Python では、この呼び出しを使用してos.stat
、変更時間などのファイル プロパティを取得できます。
import os
for filename in os.listdir():
info = os.stat(filename)
print(info.st_mtime)
st_mtime
Python 2.5 以降では float 値で、エポックからの秒数を表します。time
またはモジュールを使用して、datetime
これらを表示目的などで解釈します。
値の精度は、使用している OS によって異なることに注意してください。
st_atime、st_mtime、および st_ctime 属性の正確な意味と解決策は、オペレーティング システムとファイル システムによって異なります。たとえば、FAT または FAT32 ファイル システムを使用する Windows システムでは、st_mtime の分解能は 2 秒ですが、st_atime の分解能は 1 日しかありません。詳細については、オペレーティング システムのドキュメントを参照してください。
変更時刻を取得するだけなら、このos.path.getmtime
メソッドは便利なショートカットです。os.stat
ボンネットの下でメソッドを使用します。
ただし、このos.stat
呼び出しは比較的コストがかかることに注意してください (ファイル システムへのアクセス)。そのため、多数のファイルに対してこれを行い、ファイルごとに複数のデータポイントが必要な場合は、os.stat
返された情報を使用して再利用する方が、ファイルごとに複数回呼び出されるos.path
便利なメソッド。os.stat
変更された時刻のみが必要な場合は、それos.path.getmtime(filename)
が取得されます。引数を使用listdir
している場合は、次も使用する必要がありますos.path.join
。
import os, os.path
for filename in os.listdir(SOME_DIR):
print os.path.getmtime(os.path.join(SOME_DIR, filename))