各種資料壓縮技術用於減少儲存或傳輸的檔案和資料夾的大小。兩種常用的壓縮格式是 TAR 和 ZIP,每種格式都有自己的優點和用例。但是如果您需要組合這些格式怎麼辦?在這篇文章中,我們將探討如何在 Python 中將 TAR 與 ZIP 合併。
將 TAR 與 ZIP 合併的 Python 函式庫
Aspose.ZIP for Python 是一個功能豐富的函式庫,可讓您使用各種檔案格式,包括 ZIP 和 TAR。您可以使用該程式庫輕鬆建立、新增、擷取和操作檔案。我們將使用該程式庫將 TAR 與 ZIP 檔案合併。
> pip install aspose-zip
為什麼將 TAR 與 ZIP 合併?
在深入討論技術細節之前,我們先簡單討論為什麼您可能希望將 TAR 與 ZIP 合併。 TAR 和 ZIP 都有其獨特的優點:
TAR:TAR 是 Unix 和 Linux 系統中常用的檔案歸檔格式。它非常適合將多個檔案和目錄捆綁到一個檔案中而無需壓縮。 TAR 存檔通常用於備份和打包檔案以供分發。
ZIP:ZIP是一種廣泛使用的壓縮格式,它不僅可以捆綁檔案和目錄,還可以對其進行壓縮以減少儲存空間並加快檔案傳輸速度。 ZIP 支援多個平台,並與各種歸檔工具相容。
如果您想要保留 TAR 檔案的目錄結構,同時獲得 ZIP 的壓縮優勢,則將 TAR 與 ZIP 合併可能會很有用。
在 Python 中將 TAR 與 ZIP 合併
以下是在Python中將TAR與ZIP合併的步驟。
- 首先,使用 TarArchive 類別載入 TAR。
- 然後,使用 Archive 類別載入 ZIP。
- 之後,使用 Archive.entries 集合循環遍歷 TAR 的條目。
- 使用 Archive.entries[index].extract(BytesIO) 方法將 TAR 中的每個條目提取到 BytesIO 物件中。
- 使用 Archive.createentry(string, BytesIO) 方法將提取的條目加入 ZIP 檔案中。
- 最後,使用 Archive.save(string) 方法儲存 ZIP 檔案。
以下程式碼範例展示如何在 Python 中將 TAR 與 ZIP 檔案合併。
import aspose.zip as az
from io import BytesIO
# 載入 TAR 文件
with az.tar.TarArchive("source.tar") as source:
# 載入 ZIP 文件
with az.Archive("target.zip") as target:
# 循環遍歷 TAR 條目並將它們新增至 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)
# 儲存 ZIP 存檔
target.save("merged_tar_zip.zip")
Python ZIP 庫 - 取得免費許可證
取得免費的臨時許可證並使用多種存檔格式,不受評估限制。
學習資源
使用以下資源了解有關 Python ZIP 庫的更多資訊:
線上 ZIP 工具
使用我們免費的線上工具處理檔案,這些工具由 Aspose.ZIP for Python 提供支援。
結論
使用 Aspose.ZIP for Python 將 TAR 與 ZIP 合併是一個簡單的過程,讓您可以利用兩種歸檔格式的優勢。無論您需要打包檔案進行分發、建立備份還是只是減少儲存空間,Aspose.ZIP 都可以簡化任務並讓您對流程進行精細控制。您可以輕鬆遵循本部落格文章中提供的指南,並在 Python 應用程式中將 TAR 與 ZIP 檔案合併。