问题
I've recently have this trouble: I needed a function that removes an entirely folder in windows so I searched and this is what I get:
How do I remove/delete a folder that is not empty with Python? empty-with-python
The answers, that looks ok, seems a bit confusing and large for me... there should be a better way to solve the oneerror while accesing files in windows with shutil.rmtree (raise an error trying to acces read only files)...
回答1:
I want to share an easy way that works for me.
I just made a function that changes the write permission mode of the file, and then deletes it with 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)
then when using rmtree
, add it to the onerror
parameter:
import shutil
shutil.rmtree(desiredpath, onerror = redo_with_write)
Hope it helps to someone with the same trouble I get.
来源:https://stackoverflow.com/questions/12990112/how-to-remove-folder-in-python-rmtree-onerror