こんにちは。
本日は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')
以上です。