背景
需求:如上图,目标文件夹test下存放的是以日期命名的数据文件,我需要从这些文件里找出日期最大的文件名,将其转换为日期格式,用来进行数据更新。
我的思路是把字符串类型的日期转换为时间戳,时间戳的数据类型是float,正好可以直接比较大小,找出最大的时间戳再转换为日期格式就行了,有效不复杂。
代码
为了代码的简洁和优雅,善用列表推导式
import os
from datetime import datetime, date
fns = [fn.split('.')[0] for fn in os.listdir("./test/")] # 去掉文件后缀名
dts = [datetime(*map(int, fn.split('-'))) for fn in fns] # str转换为datetime
tms = [dt.timestamp() for dt in dts] # datetime转换为时间戳
begin_period = date.fromtimestamp(max(tms)) # 选择最大的日期作为数据同步的开始时间
end_period = date.today()