如何在文件名中设置单个反斜杠?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} 不存在")
关键修改说明:
- 变量名清晰化:把循环变量从
filename改成dir_name,避免和文件名变量冲突,逻辑更直观 - 正确路径拼接:全程用
os.path.join()处理路径,它会自动适配Windows/Linux的分隔符,彻底解决混合分隔符问题 - 移除冗余路径:不再重复拼接
FileName,直接用遍历到的目录名构建目标路径 - 增加存在性检查:先判断文件是否存在再执行重命名,避免无意义的FileNotFoundError
- 简化文件名逻辑:直接用目录名作为新文件名,如果你原来的
FileName[:-1]是为了去掉目录名末尾的斜杠,os.path.join会自动处理这种情况,不需要手动切片
内容的提问来源于stack exchange,提问作者cmclark00
相关产品推荐
相关产品推荐

