我最近遇到了这个麻烦:我需要一个在 Windows 中删除整个文件夹的功能,所以我进行了搜索,这就是我得到的:
如何使用 Python 删除/删除不为空的文件夹? 空的蟒蛇
答案,看起来不错,对我来说似乎有点混乱和大......应该有一个更好的方法来解决 oneerror 同时使用 shutil.rmtree 访问 Windows 中的文件(引发错误尝试访问只读文件).. .
我最近遇到了这个麻烦:我需要一个在 Windows 中删除整个文件夹的功能,所以我进行了搜索,这就是我得到的:
如何使用 Python 删除/删除不为空的文件夹? 空的蟒蛇
答案,看起来不错,对我来说似乎有点混乱和大......应该有一个更好的方法来解决 oneerror 同时使用 shutil.rmtree 访问 Windows 中的文件(引发错误尝试访问只读文件).. .
我想分享一个对我有用的简单方法。
我刚刚做了一个函数来改变文件的写权限模式,然后删除它os.remove
:
import stat # needed for file stat
# arguments: the function that failed, the path
# it failed on, and the error that occurred.
def redo_with_write(redo_func, path, err):
os.chmod(path, stat.S_IWRITE)
redo_func(path)
然后在使用时rmtree
,将其添加到onerror
参数中:
import shutil
shutil.rmtree(desiredpath, onerror = redo_with_write)
希望它对我遇到同样麻烦的人有所帮助。