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

如何在文件名中设置单个反斜杠?Python重命名脚本报错求助

解决Python重命名文件时的FileNotFoundError问题

先看你代码里的几个致命问题:

  • 路径重复拼接:path = HomePath + UnpackedPath + FileName + FileName + FileName + FileName直接把FileName重复加了四次,导致错误路径里出现多层重复的目录名
  • 分隔符混用:你的运行环境是Linux(路径以/home开头),但代码里用了Windows的反斜杠\,系统无法正确解析这种混合分隔符的路径
  • 变量逻辑混乱:循环变量filename被重新赋值,而且src的拼接逻辑完全错误,把目录名和文件名硬拼在一起,导致路径层级出错

直接用下面的修正代码,完全解决这些问题:

import os

# 遍历目标目录列表
for dir_name in DirectoryList:
    # 拼接目标目录的完整路径,用os.path.join自动处理分隔符
    target_dir = os.path.join(HomePath, UnpackedPath, dir_name)
    # 源文件:目标目录下的default.xex
    src_file = os.path.join(target_dir, "default.xex")
    # 目标文件:用目录名作为文件名,后缀保持xex
    dst_file = os.path.join(target_dir, f"{dir_name}.xex")
    
    # 先检查源文件是否存在,避免报错
    if os.path.exists(src_file):
        os.rename(src_file, dst_file)
    else:
        print(f"跳过:{src_file} 不存在")

关键修改说明:

  1. 变量名清晰化:把循环变量从filename改成dir_name,避免和文件名变量冲突,逻辑更直观
  2. 正确路径拼接:全程用os.path.join()处理路径,它会自动适配Windows/Linux的分隔符,彻底解决混合分隔符问题
  3. 移除冗余路径:不再重复拼接FileName,直接用遍历到的目录名构建目标路径
  4. 增加存在性检查:先判断文件是否存在再执行重命名,避免无意义的FileNotFoundError
  5. 简化文件名逻辑:直接用目录名作为新文件名,如果你原来的FileName[:-1]是为了去掉目录名末尾的斜杠,os.path.join会自动处理这种情况,不需要手动切片

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 12:10:25