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

Windows下批量移除文件前缀脚本遇FileNotFoundError问题排查

问题排查与解决方法

最核心的问题:没用到完整文件路径

Windows下os.rename如果只传单纯的文件名,它默认会去当前脚本运行的工作目录找文件,而不是你存放图片的那个文件夹——哪怕你把脚本和图片放在同一目录,只要运行脚本时的工作目录不对,就会找不到文件。

解决步骤:

  1. 先明确图片文件夹的完整路径,用r前缀避免转义字符的坑:
    import os
    # 替换成你的图片文件夹实际路径
    img_dir = r"C:\Users\XXX\Documents\通讯软件图片"
    
  2. 遍历文件时,必须拼接完整的原路径和目标路径:
    for filename in os.listdir(img_dir):
        # 跳过子文件夹,只处理文件
        file_path = os.path.join(img_dir, filename)
        if not os.path.isfile(file_path):
            continue
        
        # 处理前缀逻辑
        new_name = filename
        if filename.startswith("IMG_"):
            new_name = filename[4:]
        elif filename.startswith("image-"):
            new_name = filename[6:]
        # 可以继续加其他前缀的判断
        
        # 拼接新文件的完整路径
        new_file_path = os.path.join(img_dir, new_name)
        # 执行重命名
        os.rename(file_path, new_file_path)
    

其他可能的触发原因

  • 大小写不匹配:Windows文件名不区分大小写,但os.listdir返回的是实际大小写。比如你判断用了img_但实际文件名是IMG_,会导致新文件名和原文件名一致,这时os.rename可能抛出找不到文件的错误。
  • 文件被占用:如果图片正被看图软件、通讯软件打开,Windows会锁定文件,os.rename无法操作,也会报FileNotFoundError(这个提示有点误导,实际是权限/占用问题)。
  • 路径过长或含特殊字符:Windows默认路径长度限制是260字符,超过的话会找不到文件;文件名里有特殊字符也可能导致识别失败,试试把文件夹移到路径更短的位置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 17:32:39