Windows系统下用Python删文件夹遇PermissionError权限拒绝问题求助
解决Windows下Python删除文件夹PermissionError的方案
针对你遇到的PermissionError: [WinError 5] Access is denied: 'my files\dss'问题,以下是可行的解决步骤:
检查进程占用
确认目标文件夹没有被其他进程占用:比如资源管理器正打开该文件夹、编辑器加载了里面的文件,或者杀毒软件正在扫描。可以用Process Explorer工具搜索文件夹路径,找到占用进程后关闭。另外,代码中如果打开过文件夹内的文件,务必确保文件句柄已关闭(优先用with语句自动管理)。以管理员身份运行脚本
Windows下权限限制严格,右键点击运行脚本的终端/IDE,选择「以管理员身份运行」,再执行删除操作。带权限处理的强制删除
给shutil.rmtree添加错误处理函数,自动修改文件权限后重试删除:import os import stat import shutil def fix_permission_and_delete(func, path, exc_info): # 赋予文件/文件夹可写权限 os.chmod(path, stat.S_IWRITE) # 重新执行删除操作 func(path) shutil.rmtree(r'my files\dss', onerror=fix_permission_and_delete)检查NTFS权限设置
右键目标文件夹→属性→安全→高级,确认当前用户拥有「删除」或「完全控制」权限。若没有,点击「添加」按钮,添加当前用户并赋予对应权限后应用。移除系统/隐藏属性
如果文件夹带有系统或隐藏属性,先重置属性为普通再删除:import shutil from win32api import SetFileAttributes from win32con import FILE_ATTRIBUTE_NORMAL folder_path = r'my files\dss' # 重置为普通文件属性 SetFileAttributes(folder_path, FILE_ATTRIBUTE_NORMAL) # 执行删除 shutil.rmtree(folder_path)
内容的提问来源于stack exchange,提问作者Tareq
相关产品推荐
相关产品推荐

