Извлечь вложенный ZIP-архив в Python

Архивы ZIP широко используются для сжатия и организации файлов и папок. Иногда вы можете встретить ZIP-файлы в ZIP-архивах, известные как вложенные ZIP. Извлечение файлов из таких вложенных архивов может оказаться сложной задачей, если у вас нет подходящих инструментов. В этом сообщении блога мы рассмотрим, как легко извлекать вложенные ZIP-архивы в Python.

Библиотека Python для извлечения вложенного ZIP-архива

Aspose.ZIP for Python — мощная библиотека, позволяющая работать с ZIP-архивами в приложениях Python. Он предоставляет различные функции для создания, управления и извлечения ZIP-архивов, что делает его отличным выбором для работы со сложными структурами архивов, включая вложенные ZIP-архивы. Поэтому мы будем использовать эту библиотеку для извлечения вложенных ZIP-файлов.

Вы можете скачать библиотеку или установить ее из PyPI.

> pip install aspose-zip

Извлечение вложенных ZIP-файлов в Python

Ниже приведены шаги по извлечению вложенных ZIP-файлов в Python.

  • Сначала загрузите ZIP-архив, используя класс Archive.
  • Затем просмотрите записи ZIP, используя коллекцию Archive.entries.
  • Отфильтруйте ZIP-архивы, используя проверку ArchiveEntry.name.lower().endswith(".zip").
  • Создайте объект BytesIO и откройте вложенный в него ZIP-архив.
  • Наконец, откройте вложенный ZIP-архив с помощью объекта BytesIO и извлеките его с помощью метода Archive.extracttodirectory().

Приведенный ниже фрагмент кода извлекает вложенный ZIP-архив в папку на Python.

import aspose.zip as az
from io import BytesIO

# Загрузить ZIP-архив с вложенными ZIP-архивами
with az.Archive("nested_zip_archive.zip") as archive:
   for entry in archive.entries:            
        # Проверьте, является ли запись ZIP-архивом
        if entry.name.lower().endswith(".zip"):                
            # Открыть вложенный ZIP-архив в поток
            with BytesIO() as nested_stream:   
                # Открыть ZIP в поток
                entry.extract(nested_stream)
                
                # Загрузить ZIP-файл
                with az.Archive(nested_stream) as nested_archive: 
                    # Извлечь ZIP в папку
                    nested_archive.extract_to_directory("Extracted/" + entry.name)

ZIP-библиотека Python — получите бесплатную лицензию

Получите бесплатную временную лицензию и добавляйте файлы в ZIP-архивы без ограничений ознакомительной версии.

Образовательные ресурсы

Узнайте больше о нашей ZIP-библиотеке Python, используя ресурсы, указанные ниже:

Онлайн-инструменты ZIP

Ознакомьтесь с нашими бесплатными онлайн-инструментами для работы с ZIP-архивами, созданными на базе Aspose.ZIP for Python.

Заключение

Aspose.ZIP упрощает процесс извлечения вложенных ZIP-архивов в Python. Всего с помощью нескольких строк кода вы можете получить доступ к файлам из вложенных архивов и извлечь их. Эта библиотека является ценным инструментом для обработки сложных структур ZIP-архивов в ваших приложениях Python. Независимо от того, работаете ли вы с вложенными ZIP-архивами или выполняете другие задачи, связанные с ZIP, Aspose.ZIP for Python может упростить ваш рабочий процесс и сделать процесс разработки более эффективным.

Смотрите также