<Python> ファイル名のリスト + 時刻でソート
ファイル名file
のリストlist
で、時刻time
でソートsort
。
glob()
とかos.listdir()
はどうも順番が適当らしいので、うまくない。
いつものごとく、スタックさんに助けを乞う。
このうち、ちと、リストの内包表記に代えてみた。
まずは、ファイル作成。
In [18]: os.mkdir('tmp') In [19]: os.chdir('tmp') In [21]: with open('aaa.txt', mode='w') as f: ...: f.write('aaa') ...: In [22]: with open('bbb.txt', mode='w') as f: ...: f.write('aaa') ...: In [23]: with open('ccc.txt', mode='w') as f: ...: f.write('aaa') ...: In [27]: os.listdir('.') Out[27]: ['aaa.txt', 'bbb.txt', 'ccc.txt']
で、ソート。
In [25]: sorted([ x for x in os.listdir('.') if os.path.isfile(x) ], key=os.path.getmtime) Out[25]: ['aaa.txt', 'bbb.txt', 'ccc.txt']
sorted()
のkey
がlambda
関数をとれるらしいので、os.path.getmtime
を渡しているのがミソらしい。
ソートでちょっとお世話になったとこ。