Обновление: Я только что увидел, что вопрос заключается в копировании структуры каталогов и файлов. Мой ответ ниже для структуры каталогов только без файлов и Python3 только как указано yossi. Я все еще хотел бы оставить свой ответ как есть и надеюсь, что его не будут опускать.
Сильвиубоган очень помог мне в решении проблемы (с которой я тоже сталкивался несколько раз), поэтому вот мой подход:
shutil.copytree()
принимает copy_function
, поэтому все, что вам нужно, это функция копирования, которая не копирует файлы. Вот слегка измененная версия shutil.copy2()
, которая делает это:
def copy_dir(src, dst, *, follow_sym=True):
if os.path.isdir(dst):
dst = os.path.join(dst, os.path.basename(src))
if os.path.isdir(src):
shutil.copyfile(src, dst, follow_symlinks=follow_sym)
shutil.copystat(src, dst, follow_symlinks=follow_sym)
return dst
А затем вызов shutil.copytree(source, target, copy_function=copy_dir)
воссоздает структуру папок и подпапок из source
в target
.