2009-08-20 139 views
5

Python的shutil.copytree不是很靈活;在複製copytree(無需重新編寫其實現)時,添加對忽略權限的支持的最簡單方法是什麼?python shutil.copytree - 忽略權限

否則,copytree失敗是這樣的:

(…)」[Errno 45] Operation not supported: ‘/path/foo/bar’」 

回答

3

你在你的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添加一些行,或者找到另一個庫,說實話。

+0

這就是我發佈這個問題以前那樣。 – 2009-08-20 18:19:59

2

不是線程安全的(或建議一般),但對於OK暴殄天物腳本:

 
import shutil 

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

shutil.copytree(src, dst) 

shutil.copystat = _orig_copystat