使用Python os模块重命名文件夹遇FileExistsError[WinError183]求因
问题原因分析
你的错误出在重命名文件夹的逻辑上,具体原因如下:
目标文件夹已存在
当执行os.rename(folder_path, new_folder_path)时,如果new_folder_path(即Tutorial {i})已经存在(比如之前运行过脚本生成过这些文件夹),Windows系统下的os.rename()函数不允许覆盖已存在的文件/文件夹,因此会抛出FileExistsError。exist_ok=True的作用范围不对
你在os.makedirs(folder_path, exist_ok=True)中使用了该参数,但它仅用于确保原始文件夹folder_path(即Day{i})存在,完全不影响重命名的目标路径new_folder_path。这个参数无法解决目标路径已存在的问题。Windows系统的
os.rename()限制
不同于类Unix系统,Windows上的os.rename()不支持覆盖已存在的目标对象。只要目标路径有内容,重命名操作就会失败。
解决建议
如果你希望覆盖已存在的目标文件夹,可以改用shutil.move()函数(需先导入shutil模块),它能处理Windows下的覆盖场景:
import shutil # 替换原有的os.rename行 shutil.move(folder_path, new_folder_path)
如果你不想覆盖,而是跳过已存在的目标文件夹,可以先检查目标路径是否存在:
if not os.path.exists(new_folder_path): os.rename(folder_path, new_folder_path) else: print(f"跳过:{new_folder_name} 已存在")
内容的提问来源于stack exchange,提问作者Steve
相关产品推荐
相关产品推荐

