<Python> ファイル名のリスト + 時刻でソート(その2)

検索したら過去に同じことをやってたが、せっかくなので、メモっておく。 ファイル名のリストlistを時刻timeでソートsortする。

In [4]: ls
 ドライブ C のボリューム ラベルは Windows8_OS です
 ボリューム シリアル番号は 1679-D852 です

 C:\msys64\home\Nekoyuki\tmp\tmp のディレクトリ

2018/02/24  11:16    <DIR>          .
2018/02/24  11:16    <DIR>          ..
2018/02/24  11:15                 1 aaa.txt
2018/02/24  11:15                 1 bbb.txt
2018/02/24  11:15                 1 ccc.txt
2018/02/24  11:16                 1 ddd.txt
2018/02/24  11:15                 1 fff.txt
               5 個のファイル                   5 バイト
               2 個のディレクトリ  67,190,915,072 バイトの空き領域

In [5]: import glob

In [6]: import os

In [7]: glob.glob('{}/*'.format(os.getcwd()))
Out[7]: 
['C:\\msys64\\home\\Nekoyuki\\tmp\\tmp\\aaa.txt',
 'C:\\msys64\\home\\Nekoyuki\\tmp\\tmp\\bbb.txt',
 'C:\\msys64\\home\\Nekoyuki\\tmp\\tmp\\ccc.txt',
 'C:\\msys64\\home\\Nekoyuki\\tmp\\tmp\\ddd.txt',
 'C:\\msys64\\home\\Nekoyuki\\tmp\\tmp\\fff.txt']

In [8]: lst = glob.glob('{}/*'.format(os.getcwd()))

In [9]: [i for i in lst if 'ddd' in i]
Out[9]: ['C:\\msys64\\home\\Nekoyuki\\tmp\\tmp\\ddd.txt']

In [10]: [i for i in lst if 'ddd' in i][0]
Out[10]: 'C:\\msys64\\home\\Nekoyuki\\tmp\\tmp\\ddd.txt'

In [11]: os.path.getctime([i for i in lst if 'ddd' in i][0])
Out[11]: 1519438562.2302387

In [12]: lst.sort(key=lambda x: os.path.getctime(x))

In [13]: lst
Out[13]: 
['C:\\msys64\\home\\Nekoyuki\\tmp\\tmp\\aaa.txt',
 'C:\\msys64\\home\\Nekoyuki\\tmp\\tmp\\bbb.txt',
 'C:\\msys64\\home\\Nekoyuki\\tmp\\tmp\\ccc.txt',
 'C:\\msys64\\home\\Nekoyuki\\tmp\\tmp\\fff.txt',
 'C:\\msys64\\home\\Nekoyuki\\tmp\\tmp\\ddd.txt']

In [14]: [ os.path.getctime(i) for i in lst]
Out[14]: 
[1519438541.031442,
 1519438544.5682108,
 1519438548.668558,
 1519438556.8538623,
 1519438562.2302387]

In [15]: [os.path.basename(i) for i in lst]
Out[15]: ['aaa.txt', 'bbb.txt', 'ccc.txt', 'fff.txt', 'ddd.txt']

過去記事。
nekoyukimmm.hatenablog.com