なんだかGoodVibes

日々の勉強メモです。

【Python】zipファイルに関する操作

こんにちは。
本日はPythonメモです。

概要

zipfileモジュールを使用した
zipファイルに関する操作のメモです。


zipの作成

zipFile.zipを作成し、sampleディレクトリに存在する
sample1.txtとsample2.txtを圧縮してzipに追加しています。

write()の第2引数は圧縮方法を指定します。
圧縮方法は以下です。

  • zipfile.ZIP_STORED : 無圧縮
  • zipfile.ZIP_DEFLATED : 通常のzip圧縮
  • zipfile.ZIP_BZIP2 : BZIP2 圧縮
  • zipfile.ZIP_LZMA : LZMA圧縮
import zipfile, os

with zipfile.ZipFile('zipFile.zip', 'w') as zf:
    os.chdir('./sample')
    zf.write('sample1.txt', compress_type=zipfile.ZIP_DEFLATED)
    zf.write('sample2.txt', compress_type=zipfile.ZIP_DEFLATED)


zipの情報取得

namelist()はzipに含まれるアイテムの名前を取得します。
getinfo()は指定したファイル(zip内)の情報を取得します。

import zipfile

with zipfile.ZipFile('zipFile.zip') as zf:
    print(zf.namelist())

    info = zf.getinfo('sample1.txt')
    print('file size = ' + str(info.file_size))
    print('compress size = ' + str(info.file_size))


zipの展開

zipFile.zipをworkディレクトリに展開します。

import zipfile

with zipfile.ZipFile('zipFile.zip') as zf:
    zf.extractall('./work')

一部のアイテムのみ展開したい場合は以下のようにします。
下記のコードは、sample1.txtのみを展開します。

import zipfile

with zipfile.ZipFile('./work/zipFile.zip') as zf:
    zf.extract('sample1.txt', './work')



以上です。