все Python 3shutilфункция
shutil.copytree()
деревья каталогов
Рекурсивно копирует каталог со всем содержимым и возвращает путь копии. Файлы по умолчанию копируются через copy2.
Синтаксис
shutil.copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2, ignore_dangling_symlinks=False, dirs_exist_ok=False) -> dst
dst не должен существовать — иначе FileExistsError; слить с готовым каталогом позволяет dirs_exist_ok=True (с 3.8), и тогда совпадающие файлы перезаписываются. dst — это сам новый каталог, а не место, куда положить src: copytree('a', 'b') даёт b с содержимым a, а не b/a. Символические ссылки по умолчанию разыменовываются (symlinks=False) — копируется то, на что они указывают. Ошибки по отдельным файлам копятся и в конце поднимаются одним shutil.Error.
Примеры
import os, shutil
os.makedirs('src/sub')
open('src/sub/f.txt', 'w').close()
print(shutil.copytree('src', 'dst')) # → dst
print(os.listdir('dst')) # → ['sub']
try:
shutil.copytree('src', 'dst')
except FileExistsError as e:
print(type(e).__name__) # → FileExistsError
shutil.copytree('src', 'dst', dirs_exist_ok=True)
print(os.path.exists('dst/sub/f.txt')) # → True
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности