import shutil shutil.unpack_archive(filename[, extract_dir[, format[, filter]]])
filename
- полный путь к архиву;extract_dir
- имя целевого каталога, в который распаковывается архив;format
- формат архива: один из “zip”
, “tar”
, “gztar”
, “bztar”
или “xztar”
;filter
- фильтры извлечения для файлов tar
рекомендуется установить значение 'data'
.Функция shutil.unpack_archive()
модуля shutil
распаковывает архив. Аргумент filename
имя файла - это полный путь к архиву.
Аргумент extract_dir
- это имя целевого каталога, в который распаковывается архив. Если не указано, то используется текущий рабочий каталог.
Аргумент format
- это формат архива: один из “zip”
, “tar”
, “gztar”
, “bztar”
или “xztar”
. Или любой другой формат, зарегистрированный с помощью shutil.register_unpack_format()
. Если не указано, то функция shutil.unpack_archive()
будет использовать расширение имени файла архива и проверит, был ли зарегистрирован распаковщик с этим расширением. В случае, если ничего не найдено, возникает ошибка ValueError
.
Изменено в версии 3.12: добавлен аргумент
filter
.
Ключевой аргумент filter
передается базовой функции распаковки. Для zip-файлов фильтр не применяется. Для файлов tar
рекомендуется установить значение 'data'
, если только не используются функции, специфичные для tar и UNIX-подобных файловых систем. (Подробности смотрите в разделе "Фильтры извлечения".)
С версии Python 3.14. фильтр 'data'
станет стандартным для файлов tar
.
Вызывает событие аудита shutil.unpack_archive
с аргументами filename
, extract_dir
, format
.
Предупреждение. Никогда не извлекайте архивы из ненадежных источников без предварительной проверки. Возможно, что файлы создаются вне пути, указанного в аргументе
extract_dir
, например, элементы, которые имеют абсолютные имена файлов, начинающиеся с“/”
, или имена файлов с двумя точками“..”
.