压缩数据创建gzip文件
先看一个略麻烦的做法
1
2
3
4
5
6
|
import StringIO,gzip
content = 'Life is short.I use python'
zbuf = StringIO.StringIO()
zfile = gzip.GzipFile(mode = 'wb' , compresslevel = 9 , fileobj = zbuf)
zfile.write(content) zfile.close() |
但其实有个快捷的封装,不用用到StringIO模块
1
2
3
|
f = gzip. open ( 'file.gz' , 'wb' )
f.write(content) f.close() |
压缩已经存在的文件
python2.7后,可以用with语句
1
2
3
4
|
import gzip
with open ( "/path/to/file" , 'rb' ) as plain_file:
with gzip. open ( "/path/to/file.gz" , 'wb' ) as zip_file:
zip_file.writelines(plain_file)
|
如果不考虑跨平台,只在linux平台,下面这种方式更直接
1
2
|
from subprocess import check_call
check_call( 'gzip /path/to/file' ,shell = True )
|