2

如果我们看一下文件复制函数,我们可以看到有几个异常需要处理。一个很好的例子在这里: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)

我应该对上述功能做什么?

4

1 回答 1

9

您可能只需要处理IOError由于任何权限或 Invalid destination name 问题而可能导致的异常。

try:
    shutil.copy(src,dst)
except IOError as e:
    print e

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

于 2011-01-18T16:23:14.667 回答