在 Python 中将 TAR 与 ZIP 合并

各种数据压缩技术用于减小存储或传输的文件和文件夹的大小。两种常用的压缩格式是 TARZIP,每种格式都有自己的优点和用例。但是如果您需要组合这些格式怎么办?在这篇博文中,我们将探讨如何在 Python 中将 TAR 与 ZIP 合并。

将 TAR 与 ZIP 合并的 Python 库

Aspose.ZIP for Python 是一个功能丰富的库,允许您使用各种存档格式,包括 ZIP 和 TAR。您可以使用该库轻松创建、添加、提取和操作档案。我们将使用该库将 TAR 与 ZIP 存档合并。

您可以下载该库或从PyPI安装它。

> 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 存档合并。

也可以看看