重新运行代码替换文件夹触发PermissionError的原因及解决方法
解决删除文件夹时的PermissionError问题
你遇到的PermissionError主要有两个核心原因:一是os.remove()仅支持删除单个文件,无法删除文件夹(哪怕是空文件夹,更别说包含PDF的非空文件夹);二是目标文件夹可能正被其他进程占用(比如打开了里面的PDF文件、资源管理器停留在该目录下)。
下面是针对性的解决方法:
1. 替换删除方法为shutil.rmtree()
shutil.rmtree()是Python标准库中专门用于删除文件夹(包括其下所有文件和子文件夹)的方法,直接替换原来的os.remove()即可:
import os import shutil newpath = rf'C:\Users\{username}\Desktop\Output Folder(MC)-{jobnumber}' if os.path.exists(newpath): try: shutil.rmtree(newpath) except PermissionError: print("权限拒绝:文件夹可能被其他进程占用,请关闭相关文件/窗口后重试") os.makedirs(newpath) else: os.makedirs(newpath)
2. 排查并解除文件夹占用
- 检查是否打开了该文件夹内的PDF文件,或者有没有其他程序正在读写该文件夹的内容,关闭后再运行脚本
- 确认资源管理器是否停留在目标文件夹目录下,切换到其他目录后重试
3. 以管理员权限运行脚本
如果以上操作仍无法解决,右键点击你的Python脚本,选择「以管理员身份运行」,确保脚本拥有足够权限操作桌面目录下的文件夹
内容的提问来源于stack exchange,提问作者RafaelTech
相关产品推荐
相关产品推荐

