有效使用python shutil copy2

pep*_*ero 1 python exception-handling copy file shutil

如果我们看一下文件复制功能,我们可以看到有几个例外需要处理.这里有一个很好的例子:http://msdn.microsoft.com/en-us/library/9706cfs5.aspx

我的问题是,如果我使用python shutil copy2,我应该注意应对各种异常(源文件未找到,访问未授权等)?

例如

def copy_file (self):   
    if not os.path.isdir(dest_path):
        os.makedirs(dest_path)
    shutil.copy2(src_path, dest_path)
Run Code Online (Sandbox Code Playgroud)

我该怎么办上述功能?

Sen*_*ran 7

您可能只需要处理IOError由于任何权限或无效的目标名称问题而导致的异常.

try:
    shutil.copy(src,dst)
except IOError as e:
    print e
Run Code Online (Sandbox Code Playgroud)

MSDN文章中提到的其他异常似乎属于python中的相同IOError.FileNotFound和DirectoryNotFound并不真正适用,因为如果目标尚不存在,shutil.copy将创建目标.此外,我发现OSError的发生也是远程的,以防万一.