如何使用Python提取指定目录下最新文件对应文件名中的日期编码
实现代码
以下是可直接运行的完整脚本,完全基于文件名内置的日期编码判定新旧,不依赖文件系统的创建/修改时间属性:
import os # 路径前加r声明为原始字符串,避免Windows路径的反斜杠触发转义问题 target_dir = r"H:\Comu\Solo" all_files = os.listdir(target_dir) date_collect = [] for filename in all_files: # 过滤非pdf、长度不足的异常文件,避免切片索引越界报错 if filename.endswith(".pdf") and len(filename) >= 12: # 按你指定的索引范围切片提取日期段 date_part = filename[-12:-4] date_collect.append(date_part) # 直接取最大值即为最新日期 newest_date = max(date_collect) print(newest_date)
运行上述代码会直接输出你需要的20220628。
逻辑说明
- 你场景下的日期为8位
YYYYMMDD格式,这类字符串的字典排序结果和实际日期先后顺序完全一致,不需要额外转日期类型做比较,直接取最大值即可。 - 增加的过滤逻辑可以避免目录下存在其他命名格式的文件、子文件夹时导致的运行报错。
- 修正了原代码路径写法的潜在问题:Windows路径前加
r可以避免反斜杠和后续字符组合成转义字符,导致路径读取失败。
内容的提问来源于stack exchange,提问作者simone100
相关产品推荐
相关产品推荐

