web-dev-qa-db-ja.com

python:圧縮テキストファイルから行を読み取る

pythonファイルを完全に抽出せずにgz圧縮されたテキストファイルから行を読むのは簡単ですか?200MB前後のtext.gzファイルがあります。抽出すると、 7.4gb。そして、これが私が読む必要がある唯一のファイルではありません。全体のプロセスのために、私は10個のファイルを読まなければなりません。これはシーケンシャルな仕事になりますが、 。pythonを使用してそれを行うにはどうすればよいですか?テキストファイルを1行ずつ読み取る必要があります。

55

gzip.GzipFile を使用してみましたか?引数はopenに似ています。

16
jrennie

gzip.GzipFile を使用:

_import gzip

with gzip.open('input.gz','rt') as f:
    for line in f:
        print('got line', line)
_

注:gzip.open(filename, mode)gzip.GzipFile(filename, mode)のエイリアスです。非圧縮ファイルを開くために使用されるwith open(...) as f:に似ているため、前者の方が好きです。

58
fferri

Pythonで標準のgzipモジュールを使用できます。ただ使用する:

gzip.open('myfile.gz')

他のファイルと同様にファイルを開き、その行を読み取ります。

詳細はこちら: Python gzipモジュール

44
smichak