Python Glossary English

все 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Сообщить о неточности