LoginSignup
13
15

More than 5 years have passed since last update.

gzipで圧縮されているテキストファイルを処理するときに注意すること

Posted at

gzipで圧縮されているテキストファイルを読み込むときに,いくつか(個人的に)落とし穴があったので,まとめてみました.

バイナリ読み込み

デフォルトのファイル読み込みモードは,バイナリであるため,下記のようなコードだと,各行をバイナリで読み込んでしまいます.

import gzip

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

テキストで読みだすには,ファイルオープン時に,'rt'モードで読みこみましょう.

import gzip

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

文頭のエンコード宣言を無視

エンコーディングをデフォルトで指定しておいても,無視されてしまうので,ファイルオープン時にエンコーディングを再度指定する必要があります.つまり,最終的には,下記のようなコードでテキストファイルとして読み込めます.

import gzip

with gzip.open("test.txt.gz", "rt", "utf_8") as fi:
    for line in fi:
    print(line)

蛇足

多分,他の圧縮ファイルでも同様だと思いますが,試してません.

13
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
15