You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何获取目录中文件名带最新时间戳的文件并转为DataFrame

实现方案

核心逻辑为直接解析文件名内嵌的时间戳作为排序依据,不依赖文件系统的创建/修改时间属性。

完整可运行代码

import glob
from datetime import datetime
import pandas as pd

# 替换为你存放xlsx文件的实际目录路径
target_dir = "/path/to/your/xlsx_directory"
# 仅匹配xlsx后缀文件,过滤其他无关文件
xlsx_list = glob.glob(f"{target_dir}/*.xlsx")

def parse_file_timestamp(file_path):
    # 提取不带路径的纯文件名
    filename = file_path.split("/")[-1]
    # 拆分文件名获取时间戳部分,去掉后缀
    timestamp_str = filename.split("_")[-1].rstrip(".xlsx")
    # 转换为可直接比较大小的datetime对象
    return datetime.strptime(timestamp_str, "%Y-%m-%d %H%M")

# 按时间戳取最大值,得到最新文件路径
latest_file = max(xlsx_list, key=parse_file_timestamp)
# 读取为DataFrame
df = pd.read_excel(latest_file)

print("最新文件为:", latest_file)

扩展说明

  • 若你实际的文件名时间戳格式与示例不同,只需调整strptime方法内的格式模板即可。
  • 若需要按文件名前缀(如示例中的Test1、Test2)分别获取每个分组的最新文件,可使用分组逻辑实现:
from collections import defaultdict

# 按前缀分组存储文件路径
file_groups = defaultdict(list)
for file in xlsx_list:
    prefix = file.split("/")[-1].split("_")[0]
    file_groups[prefix].append(file)

# 每个分组取时间戳最新的文件
group_latest_files = {
    prefix: max(group, key=parse_file_timestamp)
    for prefix, group in file_groups.items()
}
  • 若多个文件内嵌时间戳完全一致,max会默认返回文件名排序靠前的结果,如有特殊排序需求可自行扩展key的返回规则。

内容的提问来源于stack exchange,提问作者user14073111

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 11:36:02