在 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 都可以簡化您的工作流程並使您的開發過程更有效率。

也可以看看