Pythonでディレクトリ内のファイルの一覧を取得してみる。

pythone コンピュータ

特定ディレクトリ内のファイルからファイルサイズと更新日付の一覧を出力するサンプルになります。

# coding: utf8
# ディレクトリ下のファイルの一覧を取得

import pathlib
import datetime

target_dir = 'h:/python'

print ("target_dir:{0}".format(target_dir))

p = pathlib.Path(target_dir)

for x in p.glob("**/*"):
	if (x.is_file()):
		fullname = str(x)         # ファイルのフルパス
		size = x.stat().st_size   # ファイルサイズ
		mtime = x.stat().st_mtime # ファイルの更新日時
		
		mtime_str = datetime.datetime.fromtimestamp(mtime) # 文字列化
		
		print ("fullname:{0} size:{1} mtime:{2}".format(fullname, size, mtime_str))

for~inは良いとして、Pathオブジェクト?を文字列化する方法がstr()で関数だったり、ファイルサイズや更新日付はstat()メソッドを経由してst_sizeやst_mtimeプロパティにアクセスしたり、極めつけは更新日付を文字列化にdatetimeを経由する辺り、どこか懐かしさを感じる作りになっています。

ちなみに、このスクリプトはWinPythonで実行していますが、Pathオブジェクトの型がWindowsPathだったりと、OSに依存する部分を抽象化(隠蔽)するのではなく、ストレートに表現しているのは、今時ちょっと珍しいように感じました。

コメント