0

shutilモジュールには、ファイルをコピーするためのいくつかのメソッドが含まれていますが、ドキュメントが警告したように、ファイル所有者や ACL などのすべてのメタデータはウィンドウに含まれません。

これをバイパスするために、次のようにコマンド ラインを呼び出すことができます。

subprocessl.call('copy src dst') 

これを行うためのよりpythonicな方法はありますか? 前もって感謝します!

4

1 に答える 1

1

http://timgolden.me.uk/python/win32_how_do_i/copy-a-file.htmlから取得 これは、基本的に Windowsで+を
実行する win32 ライブラリを呼び出して、ACL をコピーします。CtrlC

import os
import win32file
import tempfile

filename1 = tempfile.mktemp (".txt")
open (filename1, "w").close ()
filename2 = filename1 + ".copy"
print filename1, "=>", filename2

#
# Do a straight copy first, then try to copy without
# failing on collision, then try to copy and fail on
# collision. The first two should succeed; the third
# should fail.
#
win32file.CopyFile (filename1, filename2, 1)
win32file.CopyFile (filename1, filename2, 0)
win32file.CopyFile (filename1, filename2, 1)

if os.path.isfile (filename2): print "Success"

dirname1 = tempfile.mktemp (".dir")
os.mkdir (dirname1)
dirname2 = dirname1 + ".copy"
print dirname1, "=>", dirname2

#
# The CopyFile functionality doesn't seem to cope
# with directories.
#
win32file.CopyFile (dirname1, dirname2, 1)

if os.path.isdir (dirname2): print "Success"
于 2013-10-22T07:54:00.537 に答える