Python zipfileを使っても圧縮されない
MySQLにテキストファイルをBlob形式で保存しようと考えていたのですが、
「容量節約のため、zipで圧縮したファイルを登録したほうがよいのでは?」
・・・と思い、Pythonでテキストファイルをzip圧縮する方法を調べました。
import zipfile
if __name__ == '__main__':
z = zipfile.ZipFile('ziped.zip', 'w')
z.write('data.txt')
z.close()
しかし、生成されたzipファイルは、元のテキストファイルと
容量変わらず。
マニュアルを見てみると、
http://www.python.jp/doc/2.4/lib/zipfile-objects.html
■クラス ZipFile( file[, mode[, compression]])
compressionのデフォルト値は ZIP_STORED です。
なるほど、ZipFileオブジェクトを生成するとき、
圧縮したかったら、ちゃんとオプションを指定しなくちゃ
いけない模様。
import zipfile
if __name__ == '__main__':
z = zipfile.ZipFile('ziped.zip', 'w', zipfile.ZIP_DEFLATED)
z.write('data.txt')
z.close()
ちゃんとZIP_DEFLATEDと指定してやると、圧縮されました。
もどる