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

递归修改文件日期格式脚本遇FileNotFoundError问题求助

问题解决:文件重命名时的FileNotFoundError错误

你的问题出在文件路径的拼接上:os.walk返回的name只是文件名,不是完整路径,直接用os.rename(name, new_name)的话,脚本会在自己的当前工作目录里找这个文件,而不是在遍历到的子目录(root变量对应的目录)里找,所以才会报找不到文件的错误。

修正后的脚本

import os
import datetime

dir_path = r"XXX\Fake"

for root, dirs, files in os.walk(dir_path):
    for name in files:
        # 只处理符合格式的MODIS_YYYYMMDD.txt文件,避免误操作其他文件
        if name.startswith("MODIS_") and name.endswith(".txt") and len(name) == 19:  # MODIS_YYYYMMDD.txt的长度是19
            try:
                # 解析日期部分
                date_str = name[7:15]
                d = datetime.datetime.strptime(date_str, '%Y%m%d').date()
                # 拼接完整的原路径和新路径
                old_full_path = os.path.join(root, name)
                new_full_path = os.path.join(root, f"MODIS_{str(d)}.txt")
                # 执行重命名
                os.rename(old_full_path, new_full_path)
                # 可选:打印日志确认操作
                print(f"已重命名: {old_full_path} -> {new_full_path}")
            except ValueError:
                # 跳过日期格式不符合的文件
                print(f"跳过无效文件: {os.path.join(root, name)}")

关键修改点

  • 用os.path.join(root, name)生成完整的原文件路径,而不是只用文件名name
  • 新文件名同样要拼接root,确保重命名后文件还在原目录里
  • 增加了格式判断和异常捕获,避免脚本遇到非目标文件时崩溃

等测试没问题后,把.txt改成.tar就能处理实际的MODIS文件了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 21:50:10