import shutil shutil.make_archive(base_name, format[, root_dir[, base_dir[, verbose[, dry_run[, owner[, group[, logger]]]]]]])
base_name - str, имя файла архива,format - str, формат архива,root_dir - str, корневой каталог архива,base_dir - str, каталог, откуда начинается архивирование,verbose - устаревший, не используется и не рекомендуется,dry_run - bool холостой запуск,owner - владелец архива,group - группа архива,logger - экземпляр logging.Logger.str, имя файла архива.Функция make_archive() модуля shutil создает архивный файл, например zip или tar и возвращает его имя.
Аргумент base_name - это имя файла для создания архива, включая путь, за вычетом любого расширения, зависящего от формата.
Аргумент format является форматом архива, один из:
zip, если доступен модуль zlib,tar, gztar, если доступен модуль zlib,bztar, если доступен модуль bz2,xztar, если доступен модуль lzma]m-lzma.Аргумент root_dir - это каталог, который будет корневым каталогом архива. Например, обычно запускается chdir в root_dir перед созданием архива.
Изменено в Python 3.12: теперь
shutil.make_archive()передает аргументroot_dirпользовательским архиваторам, которые его поддерживают. В этом случае он больше не будет временно изменять текущий рабочий каталог процесса наroot_dirдля выполнения архивации.
Аргумент base_dir - это каталог, откуда начинается архивирование. То есть base_dir будет общим префиксом всех файлов и каталогов в архиве.
Аргументы root_dir и base_dir по умолчанию являются текущим каталогом.
Если аргумент dry_run имеет значение True, архив не создается, но выполняемые операции записываются в журнал.
Аргументы владелец owner и группа group используются при создании архива tar. По умолчанию используются текущий владелец и группа.
Аргумент logger должен быть объектом, совместимым с PEP 282, обычно это экземпляр logging.Logger.
Аргумент verbose - устаревший, не используется и не рекомендуется.
Вызывает событие аудита shutil.make_archive с аргументами base_name, format, root_dir, base_dir.
В этом примере создадим архив tar-файлов с использованием gzip, содержащий все файлы, найденные в каталоге .ssh пользователя:
>>> from shutil import make_archive >>> import os >>> archive_name = os.path.expanduser(os.path.join('~', 'myarchive')) >>> root_dir = os.path.expanduser(os.path.join('~', '.ssh')) >>> make_archive(archive_name, 'gztar', root_dir) '/Users/docs-python/myarchive.tar.gz'
Полученный архив содержит:
~$ tar -tzvf /home/docs-python/myarchive.tar.gz drwx------ docs-python/docs-python 0 2019-12-17 16:57 ./ -rw------- docs-python/docs-python 1554 2019-12-17 16:53 ./known_hosts -rw------- docs-python/docs-python 1554 2019-12-17 14:06 ./known_hosts.old -rw------- docs-python/docs-python 1679 2019-09-16 12:02 ./id_rsa -rw-r--r-- docs-python/docs-python 399 2019-09-16 12:02 ./id_rsa.pub