41047


フォルダー内に日時を元にしたファイル名のファイルが複数あるとして、  
pythonで、このフォルダー内の最後のファイル名を取得するには、どうしたら良いでしょうか？

よろしく、お願いいたします。


CC BY-SA 3.0
2018-01-17T07:53:47.333
41032
2018-01-18T03:22:58.097
15090
question
python
フォルダ内の最後のファイル名を取得


ファイル名によって解法が変わりますが、ありがちな名称の対応方法を例示します。

ファイル名が`20180118`のようにyyyymmddのみの場合

[code]

    import os
    dir = 'C:\\test'
    max(os.listdir(dir))
    
[/code]

`CODE99-01-18-2018.dat`のように、 **固定長** のファイル名の場合

[code]

    import os
    from datetime import datetime
    fs = os.listdir('C:\\test')
    max(fs, key=lambda x:datetime.strptime(x[7:17], '%m-%d-%Y'))
    
[/code]

`○○(Ver.1)議事録(Jan 18 2018).doc`のように可変長でルールが決まっているファイル名の場合

[code]

    import os
    import re
    #日付判別のためdateutilを使用
    from dateutil.parser import parse
    
    def getDate(s):
        #末尾の()を日付として抽出
        d = re.findall('\((.+?)\)', s)[-1]
        return parse(d)
    
    fs = os.listdir('C:\\test')
    max(fs, key=getDate)
    
[/code]


CC BY-SA 3.0
2018-01-18T03:22:58.097
41047
2018-01-18T03:22:58.097
9820
41032
answer