web-dev-qa-db-ja.com

Pythonを使用してディレクトリ構造/パスとともにファイルをコピーする方法は?

ここで最初に言及しなければならないことは、私はpythonが初めてだということです。

これで、次の場所にファイルがあります。

a/long/long/path/to/file.py

新しいフォルダーを作成してホームディレクトリにコピーしたい:

/home/myhome/new_folder

私の期待される結果は次のとおりです。

/home/myhome/new_folder/a/long/long/path/to/file.py

それを行うための既存のライブラリはありますか?いいえの場合、どうすればそれを達成できますか?

45
Js Lim

すべての中間レベルの宛先ディレクトリを作成するには、コピーする前に os.makedirs() を使用できます。

import os
import shutil

srcfile = 'a/long/long/path/to/file.py'
dstroot = '/home/myhome/new_folder'


assert not os.path.isabs(srcfile)
dstdir =  os.path.join(dstroot, os.path.dirname(srcfile))

os.makedirs(dstdir) # create all directories, raise an error if it already exists
shutil.copy(srcfile, dstdir)
67
jfs

shutil を見てください。 shutil.copyfile(src, dst)は、ファイルを別のファイルにコピーします。

shutil.copyfileは、まだ存在しないディレクトリを作成しないことに注意してください。そのためには、 os.makedirs を使用します

24
ewok