Объединить TAR с ZIP в Python

Различные методы сжатия данных используются для уменьшения размера файлов и папок для хранения или передачи. Двумя наиболее часто используемыми форматами сжатия являются TAR и ZIP, каждый из которых имеет свои преимущества и варианты использования. Но что, если вам нужно объединить эти форматы? В этом сообщении блога мы рассмотрим, как объединить TAR с ZIP в Python.

Библиотека Python для объединения TAR с ZIP

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

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

> pip install aspose-zip

Зачем объединять TAR с ZIP?

Прежде чем мы углубимся в технические детали, давайте кратко обсудим, почему вам может понадобиться объединить TAR с ZIP. И TAR, и ZIP имеют свои уникальные преимущества:

  • TAR: TAR — это формат архивирования файлов, обычно используемый в системах Unix и Linux. Он идеально подходит для объединения нескольких файлов и каталогов в один файл без сжатия. Архивы TAR часто используются для резервного копирования и упаковки файлов для распространения.

  • ZIP: ZIP — это широко используемый формат сжатия, который не только объединяет файлы и каталоги, но и сжимает их, чтобы уменьшить пространство для хранения и ускорить передачу файлов. ZIP поддерживается на нескольких платформах и совместим с различными инструментами архивирования.

Объединение TAR с ZIP может быть полезно в сценариях, где вы хотите сохранить структуру каталогов файлов TAR, одновременно используя преимущества сжатия ZIP.

Объединить TAR с ZIP в Python

Ниже приведены шаги по объединению TAR с ZIP в Python.

  • Сначала загрузите TAR, используя класс TarArchive.
  • Затем загрузите ZIP-архив, используя класс Archive.
  • После этого просмотрите записи TAR, используя коллекцию Archive.entries.
  • Извлеките каждую запись из TAR в объект BytesIO, используя метод Archive.entries[index].extract(BytesIO).
  • Добавьте извлеченную запись в ZIP-архив с помощью метода Archive.createentry(string, BytesIO).
  • Наконец, сохраните ZIP-архив, используя метод Archive.save(string).

В следующем примере кода показано, как объединить TAR с ZIP-архивом в Python.

import aspose.zip as az
from io import BytesIO

# Загрузить TAR-файл
with az.tar.TarArchive("source.tar") as source:
  
    # Загрузить ZIP-файл
    with az.Archive("target.zip") as target:
      
        # Перебирать записи TAR и добавлять их в ZIP.
       for i in range(source.entries.length):
            if not source.entries[i].is_directory:
                ms = BytesIO()
                source.entries[i].extract(ms)
                target.create_entry(source.entries[i].name, ms)
            else:
                target.create_entry(source.entries[i].name + "/", None)
        
        # Сохранить ZIP-архив
        target.save("merged_tar_zip.zip")

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

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

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

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

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

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

Заключение

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

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