shutil.rmtree出现PermissionError解决办法
前言:
- 今天在使用python中的shutil删除文件夹的时候出现了一个错PermissionError,原因是某个文件没有访问权限,接下来就是解决这个问题了。
解决:
- 根据经验文件无法删除多半是因为无法对其编辑,那么就应该查看一下该文件的各种权限,代码如下
import os
file_path = '文件路径'
print(os.access(file_name, os.R_OK))
print(os.access(file_name, os.W_OK))
print(os.access(file_name, os.X_OK))
- 经过查看之后发现该文件的写入权限是false,那下一步就是修改该文件的权限了,代码如下
import os
import stat
file_path = '文件路径'
os.chmod(file_path, stat.S_IWUSR)
- 上面的stat模块,通过查看stat.py可以得到对应的permission bits

- 以上准备之后我们就可以完美的实现文件删除的工作了,下面是全部代码(下面循环的原因是防止有多个文件出现权限问题)
import os
import stat
import shutil
file_path = '文件路径'
while 1:
if not os.path.exists(file_path):
break
try:
shutil.rmtree(file_path)
except PermissionError as e:
err_file_path = str(e).split("\'", 2)[1]
if os.path.exists(err_file_path):
os.chmod(err_file_path, stat.S_IWUSR)