Python で TAR と ZIP をマージする

保存または送信するファイルやフォルダーのサイズを削減するために、さまざまなデータ圧縮技術が使用されます。一般的に使用される 2 つの圧縮形式は 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 システムで一般的に使用されるファイル アーカイブ形式です。複数のファイルやディレクトリを圧縮せずに 1 つのファイルにバンドルするのに最適です。 TAR アーカイブは、バックアップや配布用のファイルのパッケージ化によく使用されます。

  • ZIP: ZIP は広く使用されている圧縮形式で、ファイルとディレクトリをバンドルするだけでなく、それらを圧縮して記憶域スペースを削減し、ファイル転送を高速化します。 ZIP は複数のプラットフォームでサポートされており、さまざまなアーカイブ ツールと互換性があります。

TAR と ZIP をマージすると、ZIP の圧縮の利点を活かしながら、TAR ファイルのディレクトリ構造を保持したいシナリオでは有益です。

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 アーカイブを簡単にマージできます。

関連項目