22

shutil.copyfile を使用した Python コードがいくつかあります。

import os
import shutil

src='C:\Documents and Settings\user\Desktop\FilesPy'
des='C:\Documents and Settings\user\Desktop\\tryPy\Output'

x=os.listdir(src)
a=os.path.join(src,x[1])

shutil.copyfile(a,des)
print a

それは私にエラーを与えます:

IOError: [Errno 13] Permission denied: 'C:\\Documents and Settings\\user\\Desktop\\tryPy\\Output'

ファイルをコピーする権限がないのはなぜですか?

4

3 に答える 3

31

ドキュメントからshutil.copyfile:

src という名前のファイルの内容 (メタデータなし) を dst という名前のファイルにコピーします。dst は完全なターゲット ファイル名でなければなりません。ターゲット ディレクトリ パスを受け入れるコピーについては、 shutil.copy() を参照してください。src と dst が同じファイルの場合、Error が発生します。宛先の場所は書き込み可能である必要があります。そうしないと、IOError 例外が発生します。dst が既に存在する場合は、置き換えられます。キャラクターデバイスやブロックデバイス、パイプなどの特殊ファイルは、この機能ではコピーできません。src と dst は文字列として与えられるパス名です。

shutil.copyしたがって、ファイル名を使用または追加する必要があると思いますdes

des = os.path.join(des, x[1])
于 2012-06-30T22:22:05.463 に答える
4

可能であれば、shutil.copy ではなく shutil.copyfile を使用することをお勧めします。

shutil.copyfile では、書き込み権限などのメタデータを考慮する必要があります。

于 2015-02-17T14:47:55.630 に答える