PythonでZipファイルへの圧縮と展開

Pythonでは標準ライブラリでZipファイルへの圧縮と展開ができます。

Zipファイルの作成

example.zipという名称のZipファイルを作成するサンプルです。
arcnameを指定すると別名でアーカイブできます。

>>> from zipfile import ZipFile
>>> z = ZipFile('example.zip', 'w')
>>> z.write('filename1.txt')
>>> z.write('filename2.txt', 'arcname.txt')
>>> z.close()

Zipファイルの展開

namelistでファイル名のリストを取得し、readでファイルのバイト列を取得します。

>>> import os
>>> z = ZipFile('example.zip', 'r')
>>> for f in z.namelist():
...   open(os.path.basename(f), 'w').write(z.read(f))
...
>>> z.close()

このサンプルではbasenameだけを使ってファイルを作成していますので、異なるディレクトリで同名のファイルが存在する場合は上書きされてしまいます。注意してください。

コメントを残す

メールアドレスが公開されることはありません。