Pythonでは、ZIPファイルを展開するための標準ライブラリが用意されています。以下にその手順を説明します。
まず、zipfile
モジュールをインポートします。
import zipfile
次に、解凍したいZIPファイルのパスを指定して、ZipFile
オブジェクトを作成します。
zip_path = "path/to/your/zipfile.zip"
with zipfile.ZipFile(zip_path) as z:
z.extractall()
このコードは、指定したZIPファイルをカレントディレクトリに展開します。
しかし、ZIPファイル内のファイル名が特定のエンコーディング(例えば、Shift_JIS)で保存されている場合、上記のコードだけでは文字化けが発生する可能性があります。そのため、以下のようにファイル名を適切なエンコーディングでデコードする必要があります。
with zipfile.ZipFile(zip_path) as z:
for info in z.infolist():
info.filename = info.filename.encode('cp437').decode('cp932')
z.extract(info)
このコードは、ZIPファイル内の各ファイルのファイル名をCP437としてエンコードし、それをCP932としてデコードします。これにより、ファイル名が正しく展開されます。
以上がPythonでZIPファイルを展開する基本的な方法です。さまざまな状況に対応するためには、エンコーディングの判定や例外処理など、さらなる処理が必要になることもあります。.