概述

在某些情況下,需要選擇性地從存檔中刪除檔案。可以根據遮罩或任何其他標準執行刪除。

Python 從 ZIP 檔案中刪除文件

delete_entry 方法用於從 ZIP 檔案中刪除整個條目。此操作是獨立的,不需要重新處理整個存檔。
ZIP 檔案的條目可以使用 DeleteEntry 方法來刪除。刪除條目無需重新打包,因此其他條目保持不變,無需解壓縮和重新壓縮。

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

此程式碼處理現有的 ZIP 檔案「archive.zip」。它會連續刪除除最後一個條目之外的所有條目,從而有效地建立一個名為「last_entry.zip」的新存檔,其中僅包含剩餘的檔案。

從 TAR 中刪除文件

delete_entry 方法對於從 TAR 檔案中刪除條目也很有效。此過程獨立運行,無需重新處理整個存檔。透過對TAR檔案使用delete_entry方法,如下例所示,可以無縫刪除條目,確保剩餘條目不受影響,不進行解壓縮或重新壓縮。

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

如果要從壓縮​​ tar (*.tar.gz) 中刪除條目,則需要將其解壓縮為純 *.tar。

CPIO 從檔案中刪除文件

與 TAR 類似,可以從 CPIO 中刪除條目。

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

請記住,delete_entry 方法會傳回存檔實例。在某些情況下,這將幫助您使程式碼更加緊湊。

從 XAR 檔案中刪除

Xar 檔案還具有單一條目刪除方法delete_entry。

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

此範例展示了隔離處理,這表示它修改存檔而不影響剩餘條目的壓縮狀態。程式碼迭代地從「archive.xar」中刪除條目,直到只剩下一個條目。最後,產生的檔案儲存為「last.xar」。

Python.Net API 支援的其他 Aspose.ZIP 功能

透過Python.Net中的Aspose.ZIP庫,您可以無縫處理與ZIP文件文件相關的各種任務。無論您需要轉換格式、合併文件、編輯內容或提取數據,Aspose.ZIP 都提供全面的功能來簡化您的工作流程並提高工作效率。

  

Support and Learning Resources

  
  

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