フォルダ内の最後のファイル名を取得

投稿者: Anonymous

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

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

解決

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

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

import os
dir = 'C:\test'
max(os.listdir(dir))

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

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

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

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)
回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *