Python で解凍せずに Zip ファイルを開く

Najwa Riyaz 2023年10月10日
  1. Python で zipfile.ZipFile() 関数を使用して一時的に解凍せずに Zip ファイルを開く
  2. Python で ZipFile.open() 関数を使用して一時的に解凍せずに Zip ファイルを開く
Python で解凍せずに Zip ファイルを開く

この記事では、Python ソフトウェアで一時的に解凍せずに zip ファイルを開く方法について説明します。Python で一時的に解凍せずに zip ファイルを開くには、zipfile Python ライブラリを使用します。

このために、zipfile 標準ライブラリをインポートします。次に、次のいずれかの機能を使用します。

  • 読み取りモードで zipfile.ZipFile() 関数を使用します。
  • 読み取りモードで ZipFile.open() 関数を使用します。

始める前に、zip ファイルを準備してください。以下の手順に従ってください。

  • 次のようにコンテンツを含む mail.txt という名前のテキストファイルを準備します。
    This is from mail.txt
    
  • mail.txt ファイルを圧縮します。
  • zip ファイルに mail.zip という名前を付けます。

Python で zipfile.ZipFile() 関数を使用して一時的に解凍せずに Zip ファイルを開く

以下は、Python で一時的に解凍せずに zip ファイルを開く方法を示すサンプルプログラムです。次のように、読み取りモードで zipfile.ZipFile() 関数を使用します。

zipfile.ZipFile(file, mode="r")

ここで、file は次のいずれかです。

  • ファイルへのパス(文字列)
  • ファイルのようなオブジェクト
  • パスのようなオブジェクト

例えば、

import zipfile

archive = zipfile.ZipFile("mail.zip", "r")
# Let us verify the operation..
txtdata = archive.read("mail.txt")
print(txtdata)

出力:

b'This is from mail.txt'

Python で ZipFile.open() 関数を使用して一時的に解凍せずに Zip ファイルを開く

これは、Python で一時的に解凍せずに zip ファイルを開く方法を示す例です。

ここでは、読み取りモードで open() 関数を使用します。

ZipFile.open(name, mode="r")

zip ファイルのメンバーは、バイナリファイルのようなオブジェクトとして扱われます。ここでの name は次のいずれかになります。

  • zip 内のファイルの名前
  • ZipInfo オブジェクト

これが例です。

import zipfile

with zipfile.ZipFile("mail.zip") as thezip:
    with thezip.open("mail.txt", mode="r") as thefile:
        # Let us verify the operation..
        print(thefile.read())

出力:

b'This is from mail.txt'

関連記事 - Python File