Skip to content

Archives

  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年10月
  • 2021年9月

Categories

  • カテゴリーなし
Trend RepositoryArticles and guides
Articles

gzip – gzip ファイルのサポート¶

On 11月 24, 2021 by admin

ソースコードです。 Lib/gzip.py

このモジュールは、ちょうど GNU プログラム gzip と gunzip のように、ファイルを圧縮・解凍する簡単なインターフェースを提供します。

データ圧縮は zlib モジュールによって行われます。gzipモジュールは GzipFile クラスと、open(), compress(), decompress() 便利関数群を提供します。GzipFile クラスは gzip 形式のファイルを読み書きし、通常のファイルオブジェクトのように見えるようにデータを自動的に圧縮または伸張する。

gzip や gunzip プログラムで伸張できる追加のファイル形式、例えば compress や pack で生成されるものは、このモジュールではサポートしないことに注意されたい。

このモジュールは以下の項目を定義する:

gzip.open(filename, mode=’rb’, compresslevel=9, encoding=None, errors=None, newline=None)¶

gzip で圧縮したファイルをバイナリまたはテキストモードで開き、fileobject を返す。

filename 引数は実際のファイル名 (str または bytes オブジェクト) か、読み込みまたは書き込みのための既存のファイルオブジェクトです。

mode 引数は、バイナリモードなら 'r', 'rb', 'a', 'ab', 'w', 'wb', 'x' または 'xb'、テキストモードなら 'rt', 'at', 'wt', または 'xt' から選ぶことができます。 デフォルトは 'rb' である。

compresslevel 引数は、GzipFile コンストラクタと同様に 0 から 9 までの整数である。

バイナリモードでは、GzipFile コンストラクタと等価である。 GzipFile(filename, mode, compresslevel).

テキストモードでは、GzipFile オブジェクトが作成され、指定されたエンコーディング、エラーハンドリング、行末を持つ io.TextIOWrapper インスタンスにラップされます。

Version 3.3 での変更点: filename がファイルオブジェクトであることのサポート、テキストモードのサポート、エンコーディング、エラーおよび改行の引数を追加しました。

バージョン 3.6 で変更された点: 'x', 'xb', 'xt' モードのサポートを追加しました。

exception gzip.BadGzipFile¶

無効な gzip ファイルに対して発生する例外です。 OSError を継承しています。EOFError と zlib.error も無効な gzipfiles に対して発生します。

version 3.8 で追加されました。

class gzip.GzipFile(filename=None, mode=None, compresslevel=9, fileobj=None, mtime=None)¶

GzipFile クラスのコンストラクタで、truncate()メソッドを除いたファイルオブジェクトのほとんどのメソッドをシミュレートしています。

新しいクラスのインスタンスは fileobj に基づいており、通常のファイル、io.BytesIO オブジェクト、またはファイルをシミュレートする他の任意のオブジェクトにすることができます。

fileobj が None でない場合、 filename 引数は gzip ファイルヘッダに含まれるためだけに使われ、圧縮されていないファイルのオリジナルのファイル名を含むことができます。

mode 引数は、ファイルが読み込まれるか書き込まれるかに応じて、 'r', 'rb', 'a', 'ab', 'w', 'wb', 'x', 'xb' のいずれかを指定することができる。 それ以外の場合,デフォルトは 'rb' である。 将来のPythonのリリースでは、fileobjのモードは使用されないでしょう。

ファイルは常にバイナリーモードで開かれることに注意してください。 圧縮されたファイルをテキストモードで開くには、open() を使用します (または GzipFile を io.TextIOWrapper で囲みます)。

引数 compresslevel は 0 〜 9 の整数で、圧縮レベルを制御します。 0は圧縮しない。 デフォルトは 9 です。

mtime 引数は、圧縮時にストリームの最終修正時刻フィールドに書き込むタイムスタンプ (オプション) で、数値で指定します。 これは、圧縮モードでのみ提供されるべきである。 省略された場合、または None の場合、現在の時刻が使用されます。 詳細は mtime 属性を参照してください。

GzipFile オブジェクトの close() メソッドを呼び出しても、fileobj は閉じません。 また、書き込み用にオープンした io.BytesIO オブジェクトを fileobj として渡し、io.BytesIO オブジェクトの getvalue() メソッドを使用して結果のメモリバッファを取得することも可能です。

GzipFile は以下のメソッドと属性も提供している:

peek(n)¶

ファイル位置を進めずに圧縮されていない n バイトを読み込む。

注意

peek()を呼び出してもGzipFileのファイル位置は変わりませんが、基本となるファイルオブジェクトの位置は変わるかもしれません (例: GzipFileのファイル位置は、peek()の呼び出しによって変更されました)。

New in version 3.2.

mtime¶

伸長するとき、最も最近読んだヘッダーの最終修正時間フィールドの値は、この属性から整数として読み取られるかもしれません。 ヘッダを読み込む前の初期値は None です。

すべての gzip 圧縮ストリームは、タイムスタンプフィールドを含むことが要求されます。 gunzip のようないくつかのプログラムでは、タイムスタンプを利用する。

バージョン 3.1 での変更点: with 文のサポートが追加され、time コンストラクタ引数と mtime 属性も追加されました。

Changed in version 3.2: ゼロパッドおよび非シーク可能ファイルのサポートが追加されました。

Changed in version 3.3: io.BufferedIOBase.read1() メソッドが実装されました。

Changed in version 3.5: 任意のbytes-likeオブジェクトの書き込みをサポートしました。read()メソッドはNoneの引数を受け取るようになりました。

Deprecated since version 3.9: GzipFile を modeargument を指定せずに書き込むことは非推奨。

gzip.compress(data, compresslevel=9, *, mtime=None)¶

データを圧縮して bytes オブジェクトに圧縮データを格納して返します。 compresslevel と mtime は上記の GzipFile コンストラクタと同じ意味です。

New in version 3.2.

Change in version 3.8.

Change in version 3.8.

New in version 3.2.

New for details: gzip.decompress(data)¶

データを解凍し、解凍されたデータを含む bytes オブジェクトを返します。

3.2 で新規に追加。

使用例¶

圧縮ファイルの読み方例:

import gzipwith gzip.open('/home/joe/file.txt.gz', 'rb') as f: file_content = f.read()

圧縮GZIPファイルの作成方法例:

import gzipcontent = b"Lots of content here"with gzip.open('/home/joe/file.txt.gz', 'wb') as f: f.write(content)

既存のファイルをGZIP圧縮する例:

圧縮ファイルを作成するにはどうするか?

import gzipimport shutilwith open('/home/joe/file.txt', 'rb') as f_in: with gzip.open('/home/joe/file.txt.gz', 'wb') as f_out: shutil.copyfileobj(f_in, f_out)

バイナリ文字列を GZIP 圧縮する例:

import gzips_in = b"Lots of content here"s_out = gzip.compress(s_in)

See also

モジュール zlib

gzip fileformat に必要な基本データ圧縮モジュールです。

Command Line Interface¶

gzip モジュールは ordecompress ファイルの圧縮のための簡単なコマンドラインインターフェイスを提供します。

一度実行されると gzip モジュールは入力ファイル (複数) を保持します。

バージョン 3.8 で変更。

Command line options¶

file¶

ファイルが指定されない場合、sys.stdinから読み込みます。

--fast¶

最速圧縮方法(少ない圧縮)を表示します。

--best¶

最も遅い圧縮方法(最高圧縮)を示します。

-d, --decompress¶

与えられたファイルを解凍します。

-h, --help¶

ヘルプメッセージを表示する。

コメントを残す コメントをキャンセル

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

アーカイブ

  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年10月
  • 2021年9月

メタ情報

  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org
  • DeutschDeutsch
  • NederlandsNederlands
  • SvenskaSvenska
  • DanskDansk
  • EspañolEspañol
  • FrançaisFrançais
  • PortuguêsPortuguês
  • ItalianoItaliano
  • RomânăRomână
  • PolskiPolski
  • ČeštinaČeština
  • MagyarMagyar
  • SuomiSuomi
  • 日本語日本語

Copyright Trend Repository 2022 | Theme by ThemeinProgress | Proudly powered by WordPress