リンク

2016年3月19日土曜日

pythonでzipファイルを作成する

Pythonでは簡単にzipファイルを作成することができます。
今回はその方法について、できるだけわかりやすくご紹介したいと思います。

zipファイルを作成するには標準モジュールの「zipfile」モジュールを使用します。

それではサンプルを記述します。
# -*- coding:utf-8

import zipfile

# オブジェクトの作成
newfile = zipfile.Zipfile(r"C:\Python\new.zip", "w", zipfile.ZIP_DEFLATED)

# zipファイルに各ファイルを追加する
newfile.write(r"C:\test\aaa.txt")
newfile.write(r"C:\test\bbb.xml")
newfile.write(r"C:\test\ccc.pdf")

# オブジェクトを閉じる
newfile.close()
<解説>
# オブジェクトの作成
newfile = zipfile.ZipFile(r"C:\Python\new.zip", "w", zipfile.ZIP_DEFLATED)
この記述で、新しいzipファイルを作成します。
この時点では、中身は空の状態です。
また、指定したパスの中間のディレクトリが存在しない場合はエラーとなります。

ZipFileクラスの引数は次のようになっています。
zipfile.ZipFile(第一引数第二引数, 第三引数)

 第一引数 … 作成するzipファイルのパスを指定します。
 第二引数 … 読み書きモードを指定します。
         "r" … 既存ファイルの読み込み
         "w" … 新しいファイルへの書き込み
         "a" … 既存ファイルへの追記
 第三引数 … 圧縮有無の指定。
         "ZIP_STORED" … 圧縮なし
         "ZIP_DEFLATED" … 圧縮あり

※参考
第三引数の圧縮についてですが、実際にテストしたところ、次の違いがありました。

"ZIP_STORED"の時 … 1848バイト
"ZIP_DEFLATED"の時 … 736バイト

# zipファイルに各ファイルを追加する
newfile.write(r"C:\test\aaa.txt")
この記述で、空だったzipファイルにファイルを追加しています。
for文等を使って、繰り返し追加することも可能です。

# オブジェクトを閉じる
newfile.close()
追加が終わったら、最後にzipファイルを閉じます。

==================================================================
環 境:Python 2.7.9  / Windows7
==================================================================
この記事が参考になりましたら、シェア・フォロー・おすすめしていただけると励みになります
==================================================================

0 件のコメント:

コメントを投稿