os.rmtree 真的删除错误的东西吗?

os.rmtree really remove something in the present of error?

对于这个错误,是否从 /shared/doc 中删除了一些文件或目录? 损坏完成了吗?

我希望的是什么都没有被删除。

谢谢

    shutil.rmtree('/shared/doc')
  File "/usr/lib64/python2.7/shutil.py", line 247, in rmtree
    rmtree(fullname, ignore_errors, onerror)
  File "/usr/lib64/python2.7/shutil.py", line 247, in rmtree
    rmtree(fullname, ignore_errors, onerror)
  File "/usr/lib64/python2.7/shutil.py", line 247, in rmtree
    rmtree(fullname, ignore_errors, onerror)
  File "/usr/lib64/python2.7/shutil.py", line 252, in rmtree
    onerror(os.remove, fullname, sys.exc_info())
  File "/usr/lib64/python2.7/shutil.py", line 250, in rmtree
    os.remove(fullname)
OSError: [Errno 13] Permission denied: '/shared/doc/past/v01/5.pdf'

如果不查看目录本身,很难预测已经删除的内容。

shutil.rmtree() 一旦进入 Permission denied 错误就会停止,但它会删除文件直到它进入这个错误。

shutil.rmtree() 不是 原子事务:

如果出现问题,该命令将停止,但它无法撤消已经造成的任何伤害,因此您最终可能会删除一半的目录。