考虑以下目录树
Work--->subdir1--->File1
| |
| ---->File2
|
-->subdir2--->File3
存在另一个类似的目录树
Gold--->subdir1--->File1
| |
| ---->File2
|
-->subdir2--->File3
我必须编写一个脚本来将Work
目录复制到另一个位置。我一直在使用shutil.copytree
相同的。
问题是,有时(但并非总是)我可能无权访问目录File2
中的某些文件Work
,并且会收到以下错误:
Traceback (most recent call last):
File "C:\Script.py", line 81, in <module>
shutil.copytree(source_loc,dest_loc)
File "C:\Python32\lib\shutil.py", line 239, in copytree
raise Error(errors)
shutil.Error: [('C:\\Work\\subdir1\\File2',
'C:\\Dest\\subdir1\\File2',
"[Errno 13] Permission denied: 'C:\\Work\\subdir1\\File2'")]
在这种情况下,我将不得不从Gold
目录中复制那些相应的文件。Gold
有没有一种方法可以通过异常自动从目录中复制相应的文件?像这样说:
try:
shutil.copytree(r'C:\Work',r'C:\Dest')
except:
<< Copy Inaccessible Files from Gold >>
我最初考虑使用os.walk
, 来单独复制文件。这样,每当我遇到特定文件的异常时,我都可以从 Gold 复制相应的文件。有没有更好的办法?