【毎日Python】Pythonでディレクトリをコピーする方法|shutil.copytree

copytree
毎日Python/こつこつPython
import shutil

Pythonでディレクトリをコピーする方法です。
使用するのは、Pythonのshutilモジュールのcopytreeメソッドです。
shutilは高水準のファイル操作を行うためのモジュールです。
高水準とは、たくさんのことをできる、というくらいの認識でよいです。

shutil.copytree('./copy_from','./copy_to')

テキストファイルが入ったcopy_fromディレクトリを、copy_toディレクトリとしてコピーしてみましょう。
shutil.copytreeの第一引数にコピー元のディレクトリパス、第二引数にコピー先のディレクトリパスを指定します。
実行します。
ディレクトリをコピーできました。
中に入っていたテキストファイルもコピーされています。
ちなみにshutilモジュールのcopytreeメソッドを実行すると、コピー先のディレクトリパスが表示されます。

shutil.copytree('./copy_from','./copy_to')

なお、コピー先のディレクトリが既に存在する場合にはエラーが出ます。
試しに先程と同じ操作を実行してみましょう 。
ファイルが既に存在しています、という内容のエラーが出ました。

shutil.copyfile('./copy_from/001.txt','./copy_to/002.txt')

copytreeメソッドに似たメソッドとして、同じくshutilモジュールのcopyfileメソッドがあります。
copyfileメソッドはその名の通りファイルをコピーするメソッドです。
試しにcopyfileメソッドを使って先程のファイルをコピーしてみましょう。
shutil.copyfileの第一引数に元のファイルパス、第二引数にコピー先のファイルパスを指定します。
実行します。
ファイルのコピーができました。
ちなみに、copyfileメソッドもcopytreeメソッドと同じように、コピー先のファイルパスが表示されます。

関連メソッド

【毎日Python】Pythonでファイルをコピーする方法|shutil.copy/copy2

毎日Python】Pythonでファイルやディレクトリを移動する方法|shutil.move

【毎日Python】Pythonで新しいディレクトリを作成する方法|mkdir

【毎日Python】Pythonで新しいディレクトリを作成や上書きする方法|makedirs