在 Python 中提取嵌套 ZIP

ZIP 存档广泛用于压缩和组织文件和文件夹。有时,您可能会在 ZIP 存档中遇到 ZIP 文件,称为嵌套 ZIP。如果您没有合适的工具,从此类嵌套存档中提取文件可能是一项具有挑战性的任务。在这篇博文中,我们将探索如何在 Python 中轻松提取嵌套的 ZIP 档案。

用于提取嵌套 ZIP 的 Python 库

Aspose.ZIP for Python 是一个功能强大的库,允许您在 Python 应用程序中使用 ZIP 存档。它提供了用于创建、操作和提取 ZIP 存档的各种功能,使其成为处理复杂存档结构(包括嵌套 ZIP 存档)的绝佳选择。因此我们将利用这个库来提取嵌套的 ZIP 文件。

您可以下载该库或从PyPI安装它。

> pip install aspose-zip

在 Python 中提取嵌套 ZIP 文件

以下是在 Python 中提取嵌套 ZIP 文件的步骤。

  • 首先,使用 Archive 类加载 ZIP 存档。
  • 然后,使用 Archive.entries 集合循环遍历 ZIP 条目。
  • 使用 ArchiveEntry.name.lower().endswith(".zip") 检查过滤 ZIP 存档。
  • 创建一个 BytesIO 对象并在其中打开嵌套的 ZIP。
  • 最后,使用 BytesIO 对象打开嵌套的 ZIP 并使用 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)
                
                # 加载邮政编码
                with az.Archive(nested_stream) as nested_archive: 
                    # 将 ZIP 解压到文件夹
                    nested_archive.extract_to_directory("Extracted/" + entry.name)

Python ZIP 库 - 获取免费许可证

获取免费的临时许可证并将文件添加到 ZIP 存档,而不受评估限制。

学习资源

使用以下资源了解有关 Python ZIP 库的更多信息:

在线 ZIP 工具

探索我们免费的用于处理 ZIP 档案的在线工具,这些工具由 Aspose.ZIP for Python 提供支持。

结论

Aspose.ZIP 简化了在 Python 中提取嵌套 ZIP 档案的过程。只需几行代码,您就可以访问嵌套档案并从中提取文件。该库是处理 Python 应用程序中复杂 ZIP 存档结构的宝贵工具。无论您是使用嵌套 ZIP 存档还是执行其他 ZIP 相关任务,Aspose.ZIP for Python 都可以简化您的工作流程并使您的开发过程更加高效。

也可以看看