Tổng quan

Trong một số trường hợp, cần phải xóa có chọn lọc các tệp khỏi kho lưu trữ. Việc xóa có thể được thực hiện dựa trên mặt nạ hoặc bất kỳ tiêu chí nào khác.
Aspose.ZIP hỗ trợ xóa có chọn lọc khỏi một số định dạng.

Python Xóa tệp khỏi kho lưu trữ ZIP

Phương thức delete_entry được sử dụng để xóa toàn bộ mục nhập khỏi kho lưu trữ ZIP. Hoạt động này độc lập và không yêu cầu xử lý lại toàn bộ kho lưu trữ.
Có thể xóa các mục trong kho lưu trữ ZIP bằng cách sử dụng cặp phương thức DeleteEntry . Việc xóa một mục diễn ra mà không cần đóng gói lại, do đó các mục khác vẫn không thay đổi mà không bị giải nén và nén lại.

    with zp.Archive("archive.zip") as archive:
        while len(archive.entries) > 1:
            archive.delete_entry(archive.entries[0])
        archive.save("last_entry.zip")

Mã này xử lý kho lưu trữ ZIP hiện có "archive.zip". Nó lần lượt xóa tất cả các mục ngoại trừ mục cuối cùng, tạo một kho lưu trữ mới có tên "last_entry.zip" chỉ chứa tệp còn lại một cách hiệu quả.

Xóa tệp khỏi TAR

Phương thức delete_entry cũng có hiệu quả trong việc xóa các mục khỏi kho lưu trữ TAR. Quá trình này hoạt động độc lập, loại bỏ nhu cầu xử lý lại toàn bộ kho lưu trữ. Bằng cách sử dụng phương thức delete_entry cho các tệp TAR, như trong ví dụ bên dưới, các mục nhập có thể được xóa liền mạch, đảm bảo rằng các mục còn lại không bị ảnh hưởng và không bị giải nén hoặc nén lại.

    with zp.tar.TarArchive("two_files.tar") as archive:
        archive.delete_entry(0)
        archive.save("single_file.tar")

Nếu bạn muốn xóa các mục khỏi tar nén (*.tar.gz), cần phải giải nén nó thành *.tar thuần túy.

CPIO Xóa tệp khỏi kho lưu trữ

Các mục có thể bị xóa khỏi CPIO tương tự như TAR.

    with zp.cpio.CpioArchive("two_files.cpio") as archive:
        archive.delete_entry(archive.entries[0]).save("single_file.cpio")

Hãy nhớ rằng, phương thức delete_entry trả về phiên bản lưu trữ. Điều này sẽ giúp bạn làm cho mã của mình gọn hơn trong một số trường hợp.

Xóa khỏi tệp XAR

Kho lưu trữ Xar cũng có phương thức xóa một mục nhập delete_entry.
Trong mẫu này, tất cả các mục nhập đều bị xóa trừ mục cuối cùng.

    with zp.xar.XarArchive("archive.xar") as archive:
        while len(archive.entries) > 1:
            archive.delete_entry(0)
        archive.save("last.xar")

Ví dụ này trình bày quá trình xử lý riêng biệt, nghĩa là nó sửa đổi kho lưu trữ mà không ảnh hưởng đến trạng thái nén của các mục còn lại. Mã sẽ lặp đi lặp lại việc xóa các mục khỏi "archive.xar" cho đến khi chỉ còn lại một mục. Cuối cùng, kho lưu trữ kết quả được lưu dưới dạng "last.xar".

Aspose.ZIP được hỗ trợ khác cho các tính năng API Python.Net

Với thư viện Aspose.ZIP trong Python.Net, bạn có thể xử lý liền mạch các tác vụ khác nhau liên quan đến tài liệu tệp ZIP. Cho dù bạn cần chuyển đổi định dạng, hợp nhất tệp, chỉnh sửa nội dung hay trích xuất dữ liệu, Aspose.ZIP đều cung cấp chức năng toàn diện để hợp lý hóa quy trình làm việc của bạn và nâng cao năng suất.

  

Support and Learning Resources

  
  

Aspose.Zip offers individual archive processing APIs for other popular development environments, listed below: