我只是想知道python2.7 shutil的copytree函数遇到文件错误时的行为是什么,要么让文件不可读,文件损坏或权限问题。我检查了文档,并没有说明除了引发错误之外它将如何表现。但是我在提出错误之后需要知道(假设它被抓住了),它会继续剩下的文件吗?如果没有,有没有办法指定函数,使其表现如此?
我知道我可以递归地使用copy2
但我真的不想重新发明轮子,除非必要。
答案 0 :(得分:0)
如果shutil.copytree
遇到异常,它会捕获异常,记录异常并继续运行。最后,它会引发一个shutil.Error
,其中列出了出现的问题条件。
这没有详细记录,但在source中可见。文档行也有一点暗示“如果发生异常,则会引发错误并列出一系列原因。”这意味着该函数可能会遇到多个异常。
对于shutil.copy2
,只复制一个文件,如果复制该文件失败,则无法合理地继续。如果它无法复制文件,则会引发错误。如果发生这种情况,可以将文件保留半复制。