Создать исполняемый самораспаковывающийся архив на Python

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

Библиотека Python для создания самораспаковывающихся архивов

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

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

> pip install aspose-zip

Создайте самораспаковывающийся архив в Python

Ниже приведены шаги по созданию исполняемого самораспаковывающегося архива в Python.

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

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

import aspose.zip as az

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

    # Настройка параметров самораспаковывающегося архива
    sfx_options = az.saving.SelfExtractorOptions()
    sfx_options.extractor_title = "Extractor"
    sfx_options.close_window_on_extraction = True
    #sfx_options.title_icon = "assets\\icon.ico"

    # Установите параметры ZIP-архива
    archive_options = az.saving.ArchiveSaveOptions()
    archive_options.self_extractor_options = sfx_options

    # Создать и сохранить архив
    archive.save('self_extracting_archive.exe', archive_options)

Запуск самораспаковывающихся архивов с помощью командной строки

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

C:>archive.exe -autoExtract 

Здесь -autoExtract — основной параметр, позволяющий извлечь архив. Если архив защищен паролем, вы можете указать пароль, используя опцию -password, как показано в следующей команде.

C:>archive.exe -autoExtract -password:T0p$ecret

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

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

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

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

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

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

Заключение

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

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