ここでは、Pythonにおける「zipfile.extractall()」を用いた複数のzipファイルを解凍する方法について解説しています。
この記事の対象
「zipfile.extractall()」の型
zipfile.extractall(path=None, pwd=None)
「zipfile.extractall()」はPythonの標準モジュールであるzip形式のファイルを展開するためのモジュールになります。
第一引数の「path」は展開する先の場所を指定します。「pwd」はパスワード設定があるファイルを解凍する場合に記述する必要があります。
行ったこと
windowsのダウンロードフォルダ内にあるzipファイルを任意のフォルダ内で解凍するプログラムを作成しました。
青空文庫でzipファイルをダウンロードすることが多いので、自動化のために作成しました。
>>>「青空文庫における任意の作家の作品リストのスクレイピング」
プログラム
import glob
import zipfile
#1---指定ファイルの取得
files = glob.glob('C:\hoge\hoge\Downloads\*.zip')
#2---取得したファイルを順に解凍
for i in files:
with zipfile.ZipFile(i) as existing_zip:
existing_zip.extractall(r"./aozora")
上記がプログラムになります。
それでは解説していきます。
#1---指定ファイルの取得
files = glob.glob('C:\hoge\hoge\Downloads\*.zip')
1の部分では、フォルダ内にある全てのzipファイルの取得を行っています。
#2---取得したファイルを順に解凍
for i in files:
with zipfile.ZipFile(i) as existing_zip:
existing_zip.extractall(r"./aozora")
2の部分では取得したファイルを順に解凍しています。「.extractall(r””)」括弧内は任意のパスを指定しています。ここでは、実行ファイルのpyhtonと同じフォルダ内にある「aozora」というフォルダ内に解凍したファイルを入れています。
最後に
zipファイルを大量にダウンロードすると解凍するのが面倒くさいです。
そんなときに上記のプログラムが役に立てば幸いです。