Trích xuất ZIP lồng nhau trong Python

Kho lưu trữ ZIP được sử dụng rộng rãi để nén và sắp xếp các tệp và thư mục. Đôi khi, bạn có thể gặp các tệp ZIP trong kho lưu trữ ZIP, được gọi là ZIP lồng nhau. Việc trích xuất các tệp từ các kho lưu trữ lồng nhau như vậy có thể là một nhiệm vụ đầy thách thức nếu bạn không có công cụ phù hợp. Trong bài đăng trên blog này, chúng ta sẽ khám phá cách trích xuất các kho lưu trữ ZIP lồng nhau trong Python một cách dễ dàng.

Thư viện Python để giải nén ZIP lồng nhau

Aspose.ZIP for Python là một thư viện mạnh mẽ cho phép bạn làm việc với các kho lưu trữ ZIP trong ứng dụng Python. Nó cung cấp nhiều tính năng khác nhau để tạo, thao tác và trích xuất các kho lưu trữ ZIP, khiến nó trở thành một lựa chọn tuyệt vời để xử lý các cấu trúc lưu trữ phức tạp, bao gồm cả các kho lưu trữ ZIP lồng nhau. Vì vậy, chúng tôi sẽ sử dụng thư viện này để trích xuất các tệp ZIP lồng nhau.

Bạn có thể tải xuống thư viện hoặc cài đặt nó từ PyPI.

> pip install aspose-zip

Trích xuất các tệp ZIP lồng nhau trong Python

Sau đây là các bước để trích xuất các tệp ZIP lồng nhau trong Python.

  • Đầu tiên, tải kho lưu trữ ZIP bằng lớp Lưu trữ.
  • Sau đó, lặp qua các mục ZIP bằng bộ sưu tập Archive.entries.
  • Lọc các kho lưu trữ ZIP bằng cách sử dụng kiểm tra ArchiveEntry.name.low().endswith(".zip").
  • Tạo một đối tượng BytesIO và mở ZIP lồng vào đó.
  • Cuối cùng, mở ZIP lồng nhau bằng đối tượng BytesIO và giải nén nó bằng phương thức Archive.extracttodirectory().

Đoạn mã dưới đây trích xuất một kho lưu trữ ZIP lồng nhau vào một thư mục trong Python.

import aspose.zip as az
from io import BytesIO

# Tải kho lưu trữ ZIP có các ZIP lồng nhau
with az.Archive("nested_zip_archive.zip") as archive:
   for entry in archive.entries:            
        # Kiểm tra xem mục nhập có phải là kho lưu trữ ZIP không
        if entry.name.lower().endswith(".zip"):                
            # Mở ZIP lồng nhau vào luồng
            with BytesIO() as nested_stream:   
                # Mở ZIP vào luồng
                entry.extract(nested_stream)
                
                # Tải ZIP
                with az.Archive(nested_stream) as nested_archive: 
                    # Giải nén ZIP vào một thư mục
                    nested_archive.extract_to_directory("Extracted/" + entry.name)

Thư viện ZIP Python - Nhận giấy phép miễn phí

Nhận giấy phép tạm thời miễn phí và thêm tệp vào kho lưu trữ ZIP mà không bị giới hạn về đánh giá.

Tài nguyên học tập

Tìm hiểu thêm về thư viện ZIP Python của chúng tôi bằng cách sử dụng các tài nguyên được cung cấp bên dưới:

Công cụ ZIP trực tuyến

Khám phá các công cụ trực tuyến miễn phí của chúng tôi để làm việc với kho lưu trữ ZIP, được cung cấp bởi Aspose.ZIP for Python.

Phần kết luận

Aspose.ZIP đơn giản hóa quá trình trích xuất các kho lưu trữ ZIP lồng nhau trong Python. Chỉ với một vài dòng mã, bạn có thể truy cập và trích xuất các tệp từ kho lưu trữ lồng nhau. Thư viện này là một công cụ có giá trị để xử lý các cấu trúc lưu trữ ZIP phức tạp trong các ứng dụng Python của bạn. Cho dù bạn đang làm việc với các kho lưu trữ ZIP lồng nhau hay thực hiện các tác vụ khác liên quan đến ZIP, Aspose.ZIP for Python có thể hợp lý hóa quy trình làm việc của bạn và giúp quá trình phát triển của bạn hiệu quả hơn.

Xem thêm