2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Python】zipファイルを解凍せずに中身を読む

Posted at

Apacheのアクセスログのような大量のzipファイルの中身を解析したい時などに、いちいち解凍するとディスクが圧迫されます。zipのままに中身にアクセスする方法として、うまくいったやり方をまとめてみました。

やりたいこと

  1. txtファイルなどをまとめたzipファイルを解凍せずに、中のtxtファイルの内容を読む
  2. Pythonで行う

結論

import zipfile

zip_file_path = "<zipファイルのパス>"
target_file_path = "<zipファイルの中にある目的のtxtファイル>"

with zipfile.ZipFile(file_path, "r") as zip_ref:
    with zip_ref.open(target_file_path, "r") as file:
        for line in file:
            line_decoded = line.decode("utf-8")
            # line_decodedに対してやりたいことを追記する

ZipFileライブラリという標準ライブラリを使えば上手くいきます。

zipfile.ZipFileオブジェクトのopen()関数は、zipアーカイブ内のファイルを開くための関数です。この関数を使用すると、zipアーカイブ内のファイルを読み取りモードで開くことができます。

あとは、for line in fileみたいなノリで一行ずつ処理するなり好きにすればよいと思います。

参考にさせていただいた記事

2
2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?