zipファイルの読み書き

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()
関連記事:

zipファイルの読み書き」への1件のフィードバック

  1. ピンバック: forループで便利な zip, enumerate関数 | Python Snippets

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)