Python copytree遇到错误时的行为是什么?

Python copytree遇到错误时的行为是什么?,python,python-2.7,shutil,Python,Python 2.7,Shutil,我只是想知道当python2.7 shutil的copytree函数遇到文件错误时,它的行为是什么,或者是文件不可读,或者是文件损坏,或者是权限问题。我检查了文档,除了引发错误外,没有指定它的行为方式。但我需要知道,在提出这个错误并假设它被捕获之后,它会继续处理剩余的文件吗?如果没有,是否有方法指定函数,使其以这种方式运行 我知道我可以递归地使用copy2,但除非必要,否则我真的不想重新发明轮子。如果shutil.copytree遇到异常,它会捕获异常,记录它,然后继续运行。最后,它会引发一个s

我只是想知道当python2.7 shutil的copytree函数遇到文件错误时,它的行为是什么,或者是文件不可读,或者是文件损坏,或者是权限问题。我检查了文档,除了引发错误外,没有指定它的行为方式。但我需要知道,在提出这个错误并假设它被捕获之后,它会继续处理剩余的文件吗?如果没有,是否有方法指定函数,使其以这种方式运行

我知道我可以递归地使用copy2,但除非必要,否则我真的不想重新发明轮子。

如果shutil.copytree遇到异常,它会捕获异常,记录它,然后继续运行。最后,它会引发一个shutil.Error,其中列出了发生的问题条件

这并没有很好的文档记录,但在中是可见的。文档行也暗示了这一点,如果出现异常,则会引发错误并列出原因,这意味着函数可能会遇到多个异常


至于shutil.copy2,它只复制一个文件,如果复制该文件失败,它将无法合理地继续。如果无法复制文件,则会引发错误。如果发生这种情况,文件可能会被复制一半。

。我不知道该如何误解这一点。如果检测到错误,复制将在原来的位置停止。@dhke:如果在第一个异常之后停止,它将如何遇到多个异常?@Ben:你是在询问copytree还是copy2?@user2357112实际上是copytree。我在考虑copytree递归调用copy2来复制文件。谢谢你指出这一点,我已经编辑了这篇文章。这非常有帮助,也正是我想知道的。非常感谢。