home changes contents help options

146:ディレクトリを再帰的にコピーする

shutil.copytree

ディレクトリをコピーするには shutil モジュールの copytree 関数を使います。:

   import shutil
   shutil.copytree("dir1", "dir2")

引数は 3 つあり、1つ目の src はコピー元ディレクトリです。 2つめの dst はコピー先ディレクトリで、新たに作られるべきディレクトリ名です。すでに存在するディレクトリを指してはいけません。 3つ目は symlinks でシンボリックリンクをシンボリックリンクのままコピーするかどうかを選びます。 真ならシンボリックリンクのまま、偽ならファイルに直してコピーされます。省略可能でデフォルトでは偽です。

ファイル属性、最終更新時間などもきちんとコピーしてくれます。

shutil には copytree 以外にも便利なファイル操作関数がそろっています。 とくにディレクトリを削除する rmtree 、ディレクトリやファイルを移動する move は役に立つものと思われます。