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

Python/Pandas场景下获取目录中最新修改文件的方法咨询

实现方案

你可以通过遍历上级Report目录下的子文件夹,筛选符合日期格式的条目后取最新的日期文件夹,自动生成所需的两个日期参数,无需手动输入。

完整实现代码

import os
import pandas as pd
from datetime import datetime

# 构造Report根目录路径
userid = str(os.getlogin())
report_root = rf"C:\Users\{userid}\OneDrive\Report"

valid_date_folders = []
# 遍历根目录下所有条目
for entry_name in os.listdir(report_root):
    entry_path = os.path.join(report_root, entry_name)
    # 跳过文件,只保留文件夹
    if not os.path.isdir(entry_path):
        continue
    # 筛选名称符合「%b %Y」格式的日期文件夹
    try:
        folder_date = datetime.strptime(entry_name, "%b %Y")
        valid_date_folders.append((folder_date, entry_name))
    except ValueError:
        # 不符合日期格式的文件夹直接跳过
        continue

# 校验是否存在符合要求的文件夹
if not valid_date_folders:
    raise FileNotFoundError("Report目录下未找到符合格式的月份文件夹")

# 取日期最大的即为最新的月份文件夹
latest_date, latest_smalldate = max(valid_date_folders, key=lambda x: x[0])
# 自动生成完整月份年份格式的参数
latest_monthyear = latest_date.strftime("%B %Y")

# 拼接最终目标文件路径
gco = os.path.join(report_root, latest_smalldate, f"Detail Report - {latest_monthyear}.xlsx")

# 可选:校验文件是否存在
if not os.path.exists(gco):
    raise FileNotFoundError(f"未找到目标文件:{gco}")

代码说明

  • 会自动过滤Report目录下所有不符合%b %Y格式的文件和文件夹,避免异常
  • 按照日期维度取最新的文件夹,无需手动输入月份
  • 自动生成你需要的smalldate和monthyear两个参数,和原有逻辑完全兼容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 13:54:02