Hợp nhất TAR với ZIP trong Python

Các kỹ thuật nén dữ liệu khác nhau được sử dụng để giảm kích thước tệp và thư mục để lưu trữ hoặc truyền tải. Hai định dạng nén thường được sử dụng là TARZIP, mỗi định dạng có điểm mạnh và trường hợp sử dụng riêng. Nhưng nếu bạn cần kết hợp các định dạng này thì sao? Trong bài đăng trên blog này, chúng ta sẽ khám phá cách hợp nhất TAR với ZIP trong Python.

Thư viện Python để hợp nhất TAR với ZIP

Aspose.ZIP for Python là một thư viện giàu tính năng cho phép bạn làm việc với nhiều định dạng lưu trữ khác nhau bao gồm ZIP và TAR. Bạn có thể sử dụng thư viện để tạo, thêm, trích xuất và thao tác các kho lưu trữ một cách dễ dàng. Chúng tôi sẽ sử dụng thư viện này để hợp nhất TAR với kho lưu trữ ZIP.

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

> pip install aspose-zip

Tại sao hợp nhất TAR với ZIP?

Trước khi đi sâu vào chi tiết kỹ thuật, hãy thảo luận ngắn gọn lý do tại sao bạn có thể muốn hợp nhất TAR với ZIP. Cả TAR và ZIP đều có những ưu điểm riêng:

  • TAR: TAR là định dạng lưu trữ tệp thường được sử dụng trong hệ thống Unix và Linux. Đó là lý tưởng để gói nhiều tệp và thư mục vào một tệp duy nhất mà không cần nén. Kho lưu trữ TAR thường được sử dụng để sao lưu và đóng gói các tệp để phân phối.

  • ZIP: ZIP là định dạng nén được sử dụng rộng rãi, không chỉ gói các tệp và thư mục mà còn nén chúng để giảm dung lượng lưu trữ và tăng tốc độ truyền tệp. ZIP được hỗ trợ trên nhiều nền tảng và tương thích với nhiều công cụ lưu trữ khác nhau.

Việc hợp nhất TAR với ZIP có thể có lợi trong các trường hợp bạn muốn bảo toàn cấu trúc thư mục của tệp TAR trong khi vẫn đạt được các lợi ích nén của ZIP.

Hợp nhất TAR với ZIP trong Python

Sau đây là các bước để hợp nhất TAR với ZIP trong Python.

  • Đầu tiên, tải TAR bằng lớp TarArchive.
  • Sau đó, tải ZIP bằng lớp Lưu trữ.
  • Sau đó, lặp qua các mục của TAR bằng bộ sưu tập Archive.entries.
  • Trích xuất từng mục từ TAR vào đối tượng BytesIO bằng phương thức Archive.entries[index].extract(BytesIO).
  • Thêm mục được trích xuất vào kho lưu trữ ZIP bằng phương thức Archive.createentry(string, BytesIO).
  • Cuối cùng, lưu kho lưu trữ ZIP bằng phương thức Archive.save(string).

Mẫu mã sau đây cho thấy cách hợp nhất TAR với kho lưu trữ ZIP trong Python.

import aspose.zip as az
from io import BytesIO

# Tải tệp TAR
with az.tar.TarArchive("source.tar") as source:
  
    # Tải tập tin ZIP
    with az.Archive("target.zip") as target:
      
        # Lặp lại các mục TAR và thêm chúng vào ZIP
       for i in range(source.entries.length):
            if not source.entries[i].is_directory:
                ms = BytesIO()
                source.entries[i].extract(ms)
                target.create_entry(source.entries[i].name, ms)
            else:
                target.create_entry(source.entries[i].name + "/", None)
        
        # Lưu kho lưu trữ ZIP
        target.save("merged_tar_zip.zip")

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à làm việc với nhiều định dạng lưu trữ 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

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

Phần kết luận

Hợp nhất TAR với ZIP bằng Aspose.ZIP for Python là một quy trình đơn giản cho phép bạn khai thác điểm mạnh của cả hai định dạng lưu trữ. Cho dù bạn cần đóng gói các tệp để phân phối, tạo bản sao lưu hay chỉ đơn giản là giảm dung lượng lưu trữ, Aspose.ZIP sẽ đơn giản hóa tác vụ và cung cấp cho bạn quyền kiểm soát chi tiết đối với quy trình. Bạn có thể dễ dàng làm theo các hướng dẫn được cung cấp trong bài đăng trên blog này và hợp nhất TAR với kho lưu trữ ZIP trong ứng dụng Python của bạn.

Xem thêm