Python的shutil.copytree不是很灵活;什么是添加忽视的权限,而在copytree拷贝(而不必重新编写其执行)支持最简单的方法?

否则,copytree失败这样的:

(…)”[Errno 45] Operation not supported: ‘/path/foo/bar’”
有帮助吗?

解决方案

您已经在您的标准Python发行shutil.py(Ubuntu的,我的是下/usr/lib/python2.6例如,Windows可能会被C:\Python26\lib?)。该copytree功能是只有38线长(34如果不计数评论),以及文档字符串的末尾明确规定:

  

XXX Consider this example code rather than the ultimate tool.

所以,最简单的方法真的是改变/添加几行到copytree,或找到另一个库,是诚实的。

其他提示

不线程安全(或一般可取),但行用于一次性脚本:

import shutil

_orig_copystat = shutil.copystat
shutil.copystat = lambda x, y: x

shutil.copytree(src, dst)

shutil.copystat = _orig_copystat
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top