Python で gzip ファイルを読み取る

Zeeshan Afridi 2023年6月21日
  1. Python の gzip モジュール
  2. ファイル圧縮の重要性
  3. Python で gzip を使用してファイルを圧縮する
  4. Python で gzip ファイルから読み取る
  5. Python で gzip ファイルを解凍する
Python で gzip ファイルを読み取る

このチュートリアルでは、ファイルを圧縮することの重要性について説明し、Python の gzip モジュールを使用してファイルを圧縮および解凍する方法を示します。

Python の gzip モジュール

このモジュールは、GNU プログラマー gzipgunzip のようなファイルを圧縮および解凍するための簡単なインターフェースを提供します。 gzip モジュールは GzipFile クラスと open()compress()、および decompress() 便利なメソッドを提供します。

gzip モジュールは、gzip 形式でファイルを読み書きし、コンテンツを圧縮または解凍して、従来のファイル オブジェクトのように見せます。

gzipは、最も広く使用されているファイル圧縮/解凍形式の 1つです。 テキスト ファイルは、gzip 圧縮を使用することでストレージ スペースを大幅に節約できます。 大きなデータ ファイルを扱う場合、大きなテキスト ファイルをgzipまたは圧縮してファイル サイズを小さくするのが一般的です。

圧縮されたgzipファイルを解凍し、解凍されたはるかに大きなファイルを行ごとに編集することは、圧縮ファイルを操作するための基本です。 ただし、それはおそらく最も優れたオプションではありません。

ファイル圧縮の重要性

ストレージ ハードウェア、データ転送時間、および通信帯域幅の削減は、圧縮のメリットのほんの一部です。 さらに、これは大幅な経済的節約につながる可能性があります。

圧縮されたファイルは、圧縮されていないファイルよりもはるかに少ないストレージ容量を必要とするため、ストレージのコストが大幅に削減されます。 さらに、圧縮されたファイルは、より少ないネットワーク容量を使用しながら、より高速に転送されます。

これにより、生産性を高めながら支出を節約できます。 データ圧縮の主な欠点は、必要なデータを圧縮するために、より多くの計算能力を使用することです。

その結果、圧縮プロバイダーは、集中的な圧縮アクティビティの影響を軽減するために、速度とリソース効率を最大化することに高い価値を置いています。 その結果、コストを削減しながら生産性を向上させることができます。

Python で gzip を使用してファイルを圧縮する

以下の例では、テキスト ファイルを wb モードで開いているということは、ファイルがバイナリ モードで書き込み可能であることを意味します。 ここでは、ファイル test.txttest.txt.gz に変更します。

コード例:

import gzip

f_in = open("test.txt", "rb")
f_out = gzip.open("test.txt.gz", "wb")
f_out.writelines(f_in)
f_out.close()
f_in.close()
print("The file is compressed.")

出力:

The file is compressed.

gzip モジュール使用時のデータ追加

以下のコードでは、追加したい任意のデータを既存のファイル test.txt.gz に追加できることを示していますが、バイナリ モードでしかデータを追加できないため、冒頭で b を使用しています。 正常に追加されましたというメッセージが表示されます。

コード例:

import gzip

data = b"Information included in this file."
with gzip.open("test.txt.gz", "wb") as f:
    f.write(data)
    print("successfully added")

出力:

successfully added

Python で gzip ファイルから読み取る

バイナリ形式でテキストを追加したため、次のコードでファイルを読み取ることができます。 次に、そのテキストを次のように出力に表示します。 バイナリ ファイルは読み取り用に rb モードで開かれるため、オープニング ファイルには rb を使用しました。

コード例:

import gzip

with gzip.open("test.txt.gz", "rb") as f:
    for line in f:
        print(line)

出力:

b'Information included in this file.'

Python で gzip ファイルを解凍する

次の例では、最初に解凍されたファイルを開き、次に圧縮されたファイルを開き、shutil を使用して、解凍されたファイルから圧縮されたファイルにオブジェクトをコピーします。

コード例:

import gzip
import shutil

with gzip.open("test.txt.gz", "rb") as f_in:
    with open("test.txt", "wb") as f_out:
        shutil.copyfileobj(f_in, f_out)
print("The file is Decompressed.")

出力:

The file is Decompressed.

ここでは、覚えておく必要のある重要な事項をいくつか紹介します。 まず、gzip ファイルを作成するには、テキスト ファイルを gz ファイルに変換する必要があります。 基本的に、ファイルを圧縮する必要があります。

バイナリ モードのみ wb でファイルを書き込み、バイナリ モード rb でファイルを読み取り、圧縮ファイルを解凍することができます。

著者: Zeeshan Afridi
Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

関連記事 - Python File