Zipファイルの作成
※複数のシーケンスをまとめて操作するzip関数についてはこちらを参照
PythonプログラムでZipファイルを作成するには、zipfile.ZipFileオブジェクトを作成する。
>>> import zipfile
>>> with zipfile.ZipFile('foo.zip', "w", zipfile.ZIP_DEFLATED) as zf:
>>> zf.write("bar.txt", "bar2.txt")
zipfileオブジェクトのwrite関数は、既存のファイルをzipファイルの中にアーカイブする関数。上の例では、ファイルシステム上に存在するbar.txtをzipファイルの中でのbar2.txtとしてzipファイルに含める。
zipファイルの中のフォルダに含める場合は、パス構造としてファイル名を記述するだけでよい。
>>> zf.write("bar.txt", "hoge/bar3.txt")
ファイルシステムに存在するファイルではなく、ファイルの内容そのものをpythonから書き込む場合には、writestrを使う。
>>> with zipfile.ZipFile('foo.zip', "w", zipfile.ZIP_DEFLATED) as zf:
>>> zf.writestr("bar4.txt", "Hello World")
zipファイルの中にbar4.txtというファイルを作成し、ファイルの中身には”Hello World”というテキストを書き込む。
Zipファイルの読み込み
zipfile.ZipFileオブジェクトを読み込みモードで作成し、そこからZipファイル内のファイル名でopenする。あとは通常のファイル操作と同じ。
>>> with zipfile.ZipFile('foo.zip', 'r') as zf:
... with zf.open('bar4.txt') as bar4:
... print bar4.read()
...
Hello World
ファイルを展開する場合には、extract,
extractallを使用する。
>>> with zipfile.ZipFile('foo.zip', 'r') as zf:
... zf.extractall()
ピンバック: forループで便利な zip, enumerate関数 | Python Snippets