はじめに
ディレクトリはshutil.copytreeでコピーできますが、コピー先のディレクトリがすでに存在する場合は使えません。
やりたいこと
work1/の下にディレクトリやファイルが格納されています。
それらをwork2/にすべてコピーします。
解決方法
下記のコマンドでディレクトリの中身を別なディレクトリにコピーできます。
import os
import re
import shutil
def all_copy(src, dst):
for dirpath, _, filenames in os.walk(src, topdown=False):
for i in filenames:
to = re.sub(r"^{}".format(src), dst, dirpath)
os.makedirs(to, exist_ok=True)
shutil.copy(os.path.join(dirpath, i), os.path.join(to, i))
src = "work1"
dst = "work2"
all_copy(src, dst)
Before
After
まとめ
ディレクトリの中身を別なディレクトリにコピーしました。
コメント