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

如何用Python批量修改目录下文件的日期命名格式为%y%m%d?

批量重命名日期格式文件的解决方案

原文件名格式是Recon-2024Jun03.xlsx,要改成Recon-240603.xlsx,直接用replace函数无法处理动态变化的日期,得通过日期解析来实现:

完整代码实现

import os
from datetime import datetime

# 替换成你的目标目录路径
path = "/your/target/directory"

for filename in os.listdir(path):
    # 只处理符合命名规则的xlsx文件
    if filename.startswith("Recon-") and filename.endswith(".xlsx"):
        # 提取日期部分:从"Recon-2024Jun03.xlsx"中分离出"2024Jun03"
        date_str = filename.split("-")[1].replace(".xlsx", "")
        try:
            # 解析原日期格式:4位年份+英文月份缩写+两位日期
            date_obj = datetime.strptime(date_str, "%Y%b%d")
            # 格式化为目标格式:两位年份+两位月份+两位日期
            new_date_str = date_obj.strftime("%y%m%d")
            # 拼接新文件名
            new_filename = f"Recon-{new_date_str}.xlsx"
            # 执行重命名(必须拼接完整路径,否则会找不到文件)
            os.rename(os.path.join(path, filename), os.path.join(path, new_filename))
            print(f"已重命名:{filename} -> {new_filename}")
        except ValueError:
            # 跳过不符合日期格式的文件
            print(f"跳过无效文件:{filename}")

关键说明

  • datetime.strptime(date_str, "%Y%b%d"):专门解析原日期字符串,%Y对应4位年份,%b对应英文月份缩写(如Jun),%d对应两位日期
  • date_obj.strftime("%y%m%d"):生成目标格式,%y取年份后两位,%m生成两位数字月份(如06),%d保留两位日期
  • 必须用os.path.join拼接完整路径,否则os.rename会在当前工作目录操作,容易导致文件找不到的错误
  • 异常处理能跳过不符合格式的文件,避免程序中途崩溃

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 20:23:13