如何批量重命名文件夹内文件并添加前缀?解决os.rename报FileNotFoundError问题
问题排查与修复方案
错误根因
- 源路径不完整:
os.listdir(actual)仅返回目标目录下的文件名,不会携带完整路径。你直接将文件名i作为os.rename的第一个参数传入时,程序会默认从当前脚本的运行工作目录查找文件,而不是你指定的actual目录,找不到对应文件就会抛出FileNotFoundError。 - 目标路径拼接错误:你直接拼接路径和前缀的写法会丢失路径分隔符,示例中会生成
D:/Phase2/utils/11.2_xxx的错误路径,不存在对应父目录也会触发报错。
修复后代码
使用os.path.join自动处理路径拼接,避免手动写分隔符的问题,额外增加文件判断逻辑跳过子目录,防止误操作:
import os actual = 'D:/Phase2/utils/1' for i in os.listdir(actual): # 拼接得到源文件的完整绝对路径 src = os.path.join(actual, i) # 仅重命名普通文件,跳过子目录 if not os.path.isfile(src): continue # 拼接目标文件完整路径 dst = os.path.join(actual, f"1.2_{i}") os.rename(src, dst)
内容的提问来源于stack exchange,提问作者sinG20
相关产品推荐
相关产品推荐

