2009-08-20 11 views
5

Pythonのshutil.copytreeはあまり柔軟ではありません。 copytreeでコピー中に権限を無視するサポートを追加する最も簡単な方法は何ですか(その実装を書き直す必要はありません)。python shutil.copytree - 権限を無視する

そうでない場合は、copytreeは次のように失敗する:あなたは、標準のPythonディストリビューションにshutil.pyを持って

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

答えて

3

は(Ubuntuの上で、鉱山は、例えば/usr/lib/python2.6下で、WindowsがC:\Python26\libかもしれません?)。 (コメントをカウントしない場合は34)copytree機能はわずか38行の長さで、ドキュメンテーション文字列の最後を明示的に述べている:

XXX Consider this example code rather than the ultimate tool.

をので、最も簡単な方法は、実際に変更になります/ copytreeにいくつかの行を追加するか、別のライブラリを見つけて正直である。

+0

私はこの質問を投稿する前にやったことです。 –

2

スレッドセーフではありません(またはお勧めを一般的に)が、使い捨てのスクリプトのOK:

 
import shutil 

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

shutil.copytree(src, dst) 

shutil.copystat = _orig_copystat 
関連する問題