python shutil.copytree - 忽略权限

Rei*_*ica 5 python file shutil

Python shutil.copytree不是很灵活; 在复制时添加对忽略权限的支持的最简单方法是什么copytree(无需重写其实现)?

否则,copytree失败如下:

(…)”[Errno 45] Operation not supported: ‘/path/foo/bar’”
Run Code Online (Sandbox Code Playgroud)

Jam*_*mie 5

不是线程安全的(或者一般来说是建议的),但对于一次性脚本来说还可以:

进口舒蒂尔

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

Shutil.copytree(src, dst)

Shutil.copystat = _orig_copystat


Mar*_*off 3

shutil.py你的标准 Python 发行版中有(/usr/lib/python2.6例如,在 Ubuntu 上,我的在下面;Windows 可能是C:\Python26\lib?)。copytree 函数只有 38 行长(如果不计算注释则为 34 行),并且文档字符串的末尾明确指出:

XXX Consider this example code rather than the ultimate tool.

因此,老实说,最简单的方法实际上是更改/添加几行到复制树,或者找到另一个库。