Создать ZIP в Python

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

ZIP-библиотека Python

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

> pip install aspose-zip

Создайте ZIP-архив в Python

Ниже приведены шаги по сжатию файла путем добавления его в ZIP-архив в Python.

  • Сначала создайте новый ZIP-архив, используя класс Archive.
  • Затем добавьте файл в ZIP-архив с помощью метода Archive.createentry().
  • Наконец, сохраните ZIP-архив с помощью метода Archive.save().

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

import aspose.zip as az

# Создать и сохранить архив с одним файлом
with az.Archive() as archive:
    # Добавить файл в архив
    archive.create_entry("file", "file.txt")

    # Создать и сохранить zip-архив
    archive.save('my_archive.zip')

Добавьте несколько файлов в ZIP-архив в Python

В предыдущем разделе мы продемонстрировали, как вставить один файл в ZIP-архив. Однако если у вас более одного файла, вы можете повторно вызывать метод Archive.createentry().

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

import aspose.zip as az

# Создать и сохранить архив с несколькими файлами
with az.Archive() as archive:
    # Добавить первый файл
    archive.create_entry("file", "file.txt")

    # Добавить второй файл
    archive.create_entry("file2", "file2.txt")

    # Создать и сохранить zip-архив
    archive.save('my_archive.zip')

Добавление папок в ZIP-архив в Python

Не только файлы, но и папки можно сжимать в ZIP-архивы. Для этого вам не нужно добавлять в архив каждый файл из папки по одному. Просто вызовите метод Archive.createentries(), передайте имя папки, и все. Для вашего понимания ниже приведены шаги по архивированию всей папки.

  • Сначала создайте новый архив, используя класс Archive.
  • Затем добавьте папку в ZIP-архив, используя метод Archive.createentries(foldername).
  • Наконец, сохраните ZIP-архив с помощью метода Archive.save().

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

import aspose.zip as az

# Создать архив из папки
with az.Archive() as archive:
    # Добавить папку в zip
    archive.create_entries("files")

    # Создать и сохранить zip-архив
    archive.save('my_archive_from_folder.zip')

Создайте защищенный паролем ZIP-файл в Python

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

  • Сначала создайте объект класса ArchiveEntrySettings и инициализируйте его нужным паролем.
  • Затем создайте объект класса Archive и инициализируйте его с помощью объекта ArchiveEntrySettings, созданного вами выше.
  • После этого добавьте в ZIP-архив файлы и папки.
  • Наконец, сохраните ZIP-архив с помощью метода Archive.save().

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

import aspose.zip as az

# Создайте настройки архива и установите пароль
archive_settings = az.saving.ArchiveEntrySettings(None, az.saving.TraditionalEncryptionSettings("password"))

# Создать и сохранить архив с несколькими файлами
with az.Archive(archive_settings) as archive:        
    # Добавить папку в zip
    archive.create_entries("files")

    # Создать и сохранить zip-архив
    archive.save('protected_archive.zip')

Шифрование ZIP-архива с помощью шифрования AES

В предыдущем примере мы применили традиционные настройки для защиты ZIP-архива паролем. Однако Aspose.ZIP for Python позволяет вам использовать шифрование AES для шифрования ваших ZIP-архивов. Вы можете использовать следующие методы шифрования AES:

  • AES128
  • AES192
  • AES256

Процесс применения шифрования AES такой же, как вы видели в предыдущем разделе. Единственное отличие состоит в том, что теперь вы будете использовать AesEcryptionSettings вместо TraditionalEncryptionSettings при определении настроек архива. В следующем примере кода показано, как применить шифрование AES к ZIP-архивам в Python.

import aspose.zip as az

# Создайте настройки архива и установите пароль
archive_settings = az.saving.ArchiveEntrySettings(None, az.saving.AesEcryptionSettings("pass", az.saving.EncryptionMethod.AES128))

# Создать и сохранить архив с несколькими файлами
with az.Archive(archive_settings) as archive:        
    # Добавить папку в zip
    archive.create_entries("files")

    # Создать и сохранить zip-архив
    archive.save('protected_archive.zip')

Установить режим параллельного сжатия

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

  • Никогда — не сжимать параллельно.
  • Всегда — сжимайте параллельно (остерегайтесь нехватки памяти).
  • Авто — решите, использовать или нет параллельное сжатие записей. Эта опция может сжимать только некоторые записи параллельно.

Ниже приведены шаги по применению параллельного сжатия при создании ZIP-архива в Python.

  • Сначала создайте новый архив, используя класс Archive.
  • Затем добавьте файлы или папки в ZIP-архив (как показано в предыдущих разделах).
  • Создайте экземпляр класса ParallelOptions и задайте для свойства ParallelCompressinMemory желаемое значение ParallelCompressionMode.
  • Создайте экземпляр класса ArchiveSaveOptions.
  • Назначьте объект ParallelOptions свойству ArchiveSaveOptions.paralleloptions.
  • Наконец, сохраните ZIP-архив с помощью метода Archive.save().

В приведенном ниже примере кода показано, как применить параллельное сжатие при сжатии файлов в Python.

# Создать и сохранить архив с несколькими файлами
import aspose.zip as az

with az.Archive() as archive:        
    # Добавить файлы/папку в zip
    archive.create_entry("file", "file.txt")
    archive.create_entry("file2", "file2.txt")

    # Создайте параметры для параллельного сжатия
    parallelOptions = az.saving.ParallelOptions()
    parallelOptions.parallel_compress_in_memory = az.saving.ParallelCompressionMode.ALWAYS

    # Создайте параметры сохранения ZIP
    archiveSaveOptions = az.saving.ArchiveSaveOptions()

    archiveSaveOptions.parallel_options = parallelOptions
    archiveSaveOptions.archive_comment = "Files compressed with parallel compression."

    # Создать и сохранить zip-архив
    archive.save('parallel_compression_archive.zip', archiveSaveOptions)

Получите бесплатную лицензию

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

ZIP-библиотека Python — Ресурсы

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

Сделать ZIP-архивы онлайн

Попробуйте наше бесплатное приложение для архивирования файлов, созданное на базе Aspose.ZIP for Python.

Заключение

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

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

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