pythonコードを使用して、shutil.copyfileを使用します:
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'
ファイルをコピーする権限がないのはなぜですか?
documentation からshutil.copyfile
:
Srcという名前のファイルの内容(メタデータなし)をdstという名前のファイルにコピーします。 dstは完全なターゲットファイル名である必要があります。ターゲットディレクトリパスを受け入れるコピーについては、shutil.copy()を参照してください。 srcとdstが同じファイルの場合、エラーが発生します。宛先の場所は書き込み可能でなければなりません。それ以外の場合は、IOError例外が発生します。 dstがすでに存在する場合は、置き換えられます。キャラクターデバイスやブロックデバイス、パイプなどの特殊ファイルは、この関数ではコピーできません。 srcおよびdstは、文字列として指定されたパス名です。
だからあなたはどちらかを使う必要があると思います shutil.copy
またはdes
にファイル名を追加:
des = os.path.join(des, x[1])
可能であれば、shutil.copyではなくshutil.copyfileを使用することをお勧めします。
Shutil.copyfileでは、書き込み権限などのメタデータを考慮する必要があります。
私はここですべてのものを試しましたが、私のコードの問題は宛先フォルダーの許可に関するものでした。 dirを作成するための独自の関数を作成しました。
_def mkdirs(newdir,mode=777):
try:
os.makedirs(newdir, mode)
except OSError as err:
return err
_
777の代わりに、後で8進数値の '0o777'を使用し、後でshutil.copyfile(target_file,dest_file)
を使用して、うまくいきました!
これが最初にdirを作成し、次にそこにファイルをコピーする人を助けることを願っています。