Python Glossary English

все Python 3shutilфункция

shutil.make_archive()

архивы

Упаковывает каталог в архив zip или tar (gz, bz2, xz, zst) одной строкой и возвращает имя созданного файла.

Синтаксис

shutil.make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0, dry_run=0, owner=None, group=None, logger=None) -> str

base_name пишется без расширения — его добавит сама функция: make_archive('backup.zip', 'zip', ...) создаст backup.zip.zip. root_dir — каталог, относительно которого строятся пути внутри архива; без него архивируется текущий каталог, и архив может попасть сам в себя. Возвращаемый путь абсолютный, только если задан root_dir; без него он такой, как передан base_name, то есть обычно относительный. До 3.10.6 функция меняла текущий каталог процесса и была опасна в потоках.

Примеры

import os, shutil, zipfile
os.makedirs('data/sub')
open('data/sub/f.txt', 'w').close()
name = shutil.make_archive('backup', 'zip', root_dir='data')
print(os.path.basename(name))  # → backup.zip
print(zipfile.ZipFile(name).namelist())  # → ['sub/', 'sub/f.txt']
import os, shutil
os.mkdir('data')
name = shutil.make_archive('backup.zip', 'zip', root_dir='data')
print(os.path.basename(name))  # → backup.zip.zip

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности