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

时间:2017-09-12 20:03:49

标签: python python-2.7 shutil

我只是想知道python2.7 shutil的copytree函数遇到文件错误时的行为是什么,要么让文件不可读,文件损坏或权限问题。我检查了文档,并没有说明除了引发错误之外它将如何表现。但是我在提出错误之后需要知道(假设它被抓住了),它会继续剩下的文件吗?如果没有,有没有办法指定函数,使其表现如此?

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

1 个答案:

答案 0 :(得分:0)

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

这没有详细记录,但在source中可见。文档行也有一点暗示“如果发生异常,则会引发错误并列出一系列原因。”这意味着该函数可能会遇到多个异常。

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