在 Python 中创建 ZIP

ZIP 档案将多个文件或文件夹压缩并捆绑到一个统一的容器中。 ZIP 存档不仅封装文件和文件夹,还保留其元数据。它们主要减少存储/传输的文件大小,并通过加密增加安全性。除了传统的文件压缩工具之外,桌面和 Web 应用程序还集成了自动压缩和提取功能,以简化上传、下载、共享和加密文件等任务。本文介绍了一种在 Python 中压缩文件或文件夹以及创建 ZIP 存档的简化方法。此外,它还介绍了如何在 Python 中创建加密且受密码保护的 ZIP 存档。那么让我们深入研究一下。

Python ZIP 库

Aspose.ZIP for Python 是一个功能强大且多功能的库,为开发人员提供了一套全面的工具来在 Python 应用程序中处理 ZIP 文件。凭借其直观的 API 和广泛的功能,Aspose.ZIP for Python 可以轻松高效地创建、提取和管理 ZIP 档案。您可以使用以下命令从 PyPI 安装该库。

> pip install aspose-zip

使用 Python 创建 ZIP 存档

以下是将文件添加到 Python 中的 ZIP 存档中来压缩文件的步骤。

  • 首先,使用 Archive 类创建一个新的 ZIP 存档。
  • 然后,使用 Archive.createentry() 方法将文件添加到 ZIP 存档。
  • 最后,使用 Archive.save() 方法保存 ZIP 存档。

以下代码示例展示了如何使用 Python 将文件添加到 ZIP 存档中。

import aspose.zip as az

# 使用单个文件创建并保存存档
with az.Archive() as archive:
    # 将文件添加到存档中
    archive.create_entry("file", "file.txt")

    # 创建并保存 zip 存档
    archive.save('my_archive.zip')

在 Python 中将多个文件添加到 ZIP 存档中

在上一节中,我们演示了如何将单个文件插入 ZIP 存档中。但是,如果您有多个文件,则可以重复调用 Archive.createentry() 方法。

以下代码示例展示了如何使用 Python 将多个文件插入到 ZIP 存档中。

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')

在 Python 中将文件夹添加到 ZIP 存档

不仅是文件,您还可以将文件夹压缩到 ZIP 存档中。为此,您不需要将文件夹中的每个文件都一一添加到存档中。只需调用 Archive.createentries() 方法,传递文件夹的名称即可。为了便于您理解,以下是归档完整文件夹的步骤。

  • 首先,使用 Archive 类创建一个新存档。
  • 然后,使用 Archive.createentries(foldername) 方法将文件夹添加到 ZIP 存档中。
  • 最后,使用 Archive.save() 方法保存 ZIP 存档。

以下代码示例演示如何在 Python 中将文件夹添加到 ZIP。

import aspose.zip as az

# 从文件夹创建存档
with az.Archive() as archive:
    # 将文件夹添加到 zip
    archive.create_entries("files")

    # 创建并保存 zip 存档
    archive.save('my_archive_from_folder.zip')

在 Python 中创建受密码保护的 ZIP

在各种情况下,例如在互联网上共享存档时,您必须使用密码保护 ZIP 文件。使用 Aspose.ZIP for Python 创建受密码保护的 ZIP 存档是一个简单的过程,可为压缩文件提供增强的安全性。让我们看看如何在 Python 中使用密码保护 ZIP 存档。

  • 首先,创建 ArchiveEntrySettings 类的对象并使用所需的密码对其进行初始化。
  • 然后,创建 Archive 类的对象并使用上面创建的 ArchiveEntrySettings 对象对其进行初始化。
  • 之后,将文件和文件夹添加到 ZIP 存档中。
  • 最后,使用 Archive.save() 方法保存 ZIP 存档。

以下代码示例展示了如何在 Python 中创建受密码保护的 ZIP 存档。

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')

使用 AES 加密对 ZIP 存档进行加密

在前面的示例中,我们应用传统设置来使用密码保护 ZIP 存档。但是,Aspose.ZIP for Python 允许您使用 AES 加密来加密您的 ZIP 存档。您可以使用以下 AES 加密方法:

  • AES128
  • AES192
  • AES256

应用 AES 加密的过程与您在上一节中看到的相同。唯一的区别是,您现在在定义存档设置时将使用 AesEcryptionSettings 而不是 ClassicEncryptionSettings。以下代码示例演示了如何在 Python 中将 AES 加密应用于 ZIP 存档。

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 何时应用并行压缩。可以使用以下并行压缩模式。

  • 从不 - 不并行压缩。
  • 始终 - 并行压缩(注意内存不足)。
  • 自动 - 决定是否对条目使用并行压缩。此选项可能仅并行压缩某些条目。

以下是在 Python 中创建 ZIP 存档时应用并行压缩的步骤。

  • 首先,使用 Archive 类创建一个新存档。
  • 然后,将文件或文件夹添加到 ZIP 存档(如前面部分所示)。
  • 创建 ParallelOptions 类的实例并将 parallelcompressinmemory 属性设置为所需的 ParallelCompressionMode 值。
  • 创建 ArchiveSaveOptions 类的实例。
  • 将 ParallelOptions 对象分配给 ArchiveSaveOptions.paralleloptions 属性。
  • 最后,使用 Archive.save() 方法保存 ZIP 存档。

下面的代码示例展示了如何在 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 存档,没有任何评估限制。

Python ZIP 库 - 资源

您可以使用以下资源探索有关我们的 Python ZIP 库的更多信息:

在线制作 ZIP 档案

尝试我们的免费文件压缩应用程序,该应用程序由 Aspose.ZIP for Python 提供支持。

结论

总之,Aspose.ZIP for Python 提供了一个强大且多功能的解决方案,可以轻松创建和管理 ZIP 档案。凭借其全面的功能,开发人员可以将 ZIP 功能无缝集成到他们的 Python 应用程序中。无论是压缩文件、添加加密还是组织复杂的目录结构,Aspose.ZIP 都提供了可靠的工具包来简化这些任务。

本文为您提供了有关如何在 Python 中创建 ZIP 存档的完整指南。此外,我们还介绍了如何存档多个文件和文件夹、创建受密码保护的 ZIP 存档、应用 AES 加密以及配置并行 ZIP 压缩方法。您可以轻松地将库集成到您的 Python 应用程序中并使用提供的代码示例。

也可以看看