2

特定のファイルを指定したパスにコピーしたい。この指定されたパスには、事前に存在せず、コピー中に作成する必要があるディレクトリの多くの階層があります。

関数を試してみshutil.copy*ましたが、宛先パスのディレクトリが事前に作成されている必要があるようです。

これらのディレクトリを必要に応じて設定し、ファイルをコピーする機能はありますか?

使用例:

copy_file('resources/foo.bar', expanduser('~/a/long/long/path/foo.bar'))
4

1 に答える 1

5

を使用os.makedirsして、必要な樹木を再帰的に作成してから、 を使用できますshutil.copy

target_dir = os.path.expanduser('~/a/long/long/path')
os.makedirs(target_dir)
shutil.copy('resources/foo.bar', os.path.join(target_dir, 'foo_bar'))

このようにして、問題を管理可能なタスク (作成してからコピー) に分解し、ディレクトリの作成がクラッシュした場合に対処できるようにします (「明示的は暗黙的よりも優れている」に従います)。

于 2012-10-25T10:50:07.873 に答える