Pythonでは、ZIPファイルを開いてその内容を読み込むための便利なモジュールがあります。その名も zipfile.ZipFile
。このクラスは、ZIPへのファイル読み込み・書き込みに便利です。
zipfile.ZipFileの基本的な使い方
まずは、ZIPファイルを開いてファイルを一覧表示する基本的なコード例を見てみましょう。
from zipfile import ZipFile
with ZipFile('hoge.zip', 'r') as zip:
print(zip.namelist())
このコードは、'hoge.zip'
というZIPファイルを読み込みモード(’r’)で開き、その中に含まれる全てのファイルの一覧を表示します。
ファイルの読み込み
次に、ZIPファイル内の特定のファイルを読み込む方法を見てみましょう。
import os
import zipfile
with zipfile.ZipFile('archive.zip') as z:
for filename in z.namelist():
if not os.path.isdir(filename):
with z.open(filename) as f:
for line in f:
print(line.decode('utf-8'))
このコードは、ZIPファイル内の各ファイルを開き、その内容を行ごとに表示します。ただし、ディレクトリは無視されます。
注意点
しかし、zipfile.ZipFile
の使い方にはいくつか注意点があります。
- ZIP内の絶対パスは
/
から始まらない - バイナリファイル読み込みは
read()
を使う - テキストファイル読み込みは
open()
を使う - バイナリファイル追加は
write/writestr
を使う
これらの注意点を理解しておけば、PythonでZIPファイルを扱う際にハマることが少なくなるでしょう。
以上、PythonでZIPファイルを開き、その内容を読み込む方法について説明しました。この情報がPythonでのファイル操作に役立つことを願っています。