【Python】ZIPファイルの中身を取得する

スポンサーリンク

PythonではZIPファイルの中身を取得することができます。

ZIPファイルの中にあるファイルやフォルダの一覧を取得できます。

今回は、PythonでZIPファイルの中身を取得する方法を解説します。

ZIPファイルの中身を取得する

ZIPファイルを圧縮・解凍する方法はこちらを参照してください。

参考ページPythonでフォルダーをZIPファイルへ圧縮する

参考ページPythonでZIPファイルを解凍する

ZIPファイルの中身を取得する

import zipfile

# ZIPファイルを読み込み
zip_f = zipfile.ZipFile('C:\\pg\\圧縮ファイル.zip')

# ZIPの中身を取得
lst = zip_f.namelist()

# リストから取り出す
for fil in lst:
    print(fil) 
#[結果] file1.txt
#[結果] プログラム一覧.docx
# ZIPファイルをクローズ
zip_f.close()

ZIPの中身

ここでは「C:\pg\圧縮ファイル.zip」の中身である2つのファイルを取得しました。

 

zipfileの解説

PythonでフォルダーをZIPファイルへ解凍するには「zipfile」モジュールを使います。ZIPファイルを読み込み、中身を取得するという手順になります。

zipfile.ZipFileの使い方

import zipfile

# ZIPファイルを読み込み
zip_f = zipfile.ZipFile('C:\\pg\\圧縮ファイル.zip')

最初に「zipfile」をインポートします。

「zipfile.ZipFile」でZIPファイルを読み込みます。「zipfile.ZipFile」の第1パラメータはZIPファイルのパスです。

第2パラメータは編集モードですが、省略すると「r:読み取り」となります。

w 書き込み
r 読み取り
a 追記

圧縮ファイルの中身を取得する

# ZIPの中身を取得 
lst = zip_f.namelist() 
# リストから取り出す
for fil in lst:
    print(fil) 
#[結果] file1.txt
#[結果] プログラム一覧.docx

「zip_f.namelist」でZIPファイルの中身を取得します。ZIPファイルの中身はリストで取得できるので、リスト型変数から「For in」を使って1つずつファイル名を取り出しました。

 

withを使うパターン

zipファイルを扱う場合、「with」を使った方が便利です。最後の「close」が必要なく、コードがインデントするため、zipの有効範囲がわかりやすいですね。

「with」を使ったzipファイルの圧縮に変換します。

import zipfile

# ZIPファイルを読み込み
with zipfile.ZipFile('C:\\pg\\圧縮ファイル.zip') as zip_f:

    # ZIPの中身を取得
    lst = zip_f.namelist() 

    # リストから取り出す
    for fil in lst:
        print(fil)

#[結果] file1.txt 
#[結果] プログラム一覧.docx 

コチラの書き方の方がいいかもしれません。

参考ページhttps://docs.python.jp/3/library/zipfile.html

PythonでZIPファイルの中身を取得することができました。

以上、PythonでZIPファイルの中身を取得する方法でした。

コメント