Path オブジェクトのリストを更新日時でソートしたいときは次のようにする。
# カレントディレクトリの jpg をソート対象にする例
from pathlib import Path
import os
paths = list(Path('.').glob(r'*.jpg'))
paths.sort(key=os.path.getmtime)
# ソート結果の表示
for file in paths:
print(f'{file.stat().st_mtime:.0f} {file.name}')
"""
1595211792 b.jpg
1598978486 a.jpg
1604019658 c.jpg
"""
.sort() メソッドには key として file.stat().st_mtime
を渡したいものの、key に指定できるのは引数を1つ取る関数だけなので os.path.getmtime(path) を利用する。
降順ソート
降順(逆順)のソート結果が欲しいときは reverse 引数を指定する。
ファイルサイズ・作成日時によるソート
key として os.path.getsize(path) を指定すれば、ファイルサイズでソートできる。
同様に os.path.getctime
を key にすることでファイル作成日時でソートできる (Windows の場合)。
※ Python 3.9 で動作確認。
参考
- ソート HOW TO — Python 3 ドキュメント
- operator モジュール関数の応用例。任意の属性やメソッドをキーにできる。
コメントを投稿