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