ディレクトリやファイルのコピー、あれこれ
あるディレクトリのコピーを作成する場合、どうやるのが一番いいのか検討。できるかどうかは別にして、考えられる処理手順としては、
がある。後者の方法の方が、手順が少ないからよい。
調べたら、どうやらできそう。たまにやっていることながら、頻繁にはやっていないのですぐに方法を忘れてしまう。
ディレクトリのコピー
ディレクトリoldをコピーして、ディレクトリnewを作成する。
import shutil import os oldpath = os.path.join(os.getcwd(), 'old') newpath = os.path.join(os.getcwd(), 'new') shutil.copytree(oldpath, newpath)
すでにnewというディレクトリがあると、OSErrorになる。その場合、既存のnewを削除してからコピーするには、
import shutil import os oldpath = os.path.join(os.getcwd(), 'old') newpath = os.path.join(os.getcwd(), 'new') try: shutil.copytree(oldpath, newpath) except OSError: shutil.rmtree(newpath) shutil.copytree(oldpath, newpath)
このようにやろう。
ファイルのコピー
ディレクトリ内のあるファイルだけをコピーする場合は、
import shutil import os oldpath = os.path.join(os.getcwd(), 'old', 'file') newpath = os.path.join(os.getcwd(), 'new') shutil.copy2(oldpath, newpath)
でできた。ディレクトリoldのファイルfileを、ディレクトリnewにコピーする。
参考:http://morchin.sakura.ne.jp/effective_python/file_system.html