利用python中的gzip模块压缩和解压数据流和文件
2015-07-01 17:37
1141 查看
直接给出源码实现, 分为两种情况:
1.网络连接中的数据流的压缩和解压,或是打开的文件读取一部分
2.打开文件压缩或是解压
请自己修改输入和输出文件路径, 确保相应的文件存在, 取消相应的注释进行测试.
参考文献:
[1].https://docs.python.org/2/library/gzip.html
官网
[2]./article/8892095.html
1.网络连接中的数据流的压缩和解压,或是打开的文件读取一部分
2.打开文件压缩或是解压
#!/usr/bin/env python #encoding: utf-8 #filename: gzip_demo.py #author: tao_627@aliyun.com #date: 2015-06-30 import gzip, binascii, os from cStringIO import StringIO def gzip_compress(raw_data): buf = StringIO() f = gzip.GzipFile(mode='wb', fileobj=buf) try: f.write(raw_data) finally: f.close() return buf.getvalue() def gzip_uncompress(c_data): buf = StringIO(c_data) f = gzip.GzipFile(mode = 'rb', fileobj = buf) try: r_data = f.read() finally: f.close() return r_data def compress_file(fn_in, fn_out): f_in = open(fn_in, 'rb') f_out = gzip.open(fn_out, 'wb') f_out.writelines(f_in) f_out.close() f_in.close() def uncompress_file(fn_in, fn_out): f_in = gzip.open(fn_in, 'rb') f_out = open(fn_out, 'wb') file_content = f_in.read() f_out.write(file_content) f_out.close() f_in.close() if __name__ == '__main__': in_data = 'hello, world!' print in_data out_data = gzip_compress(in_data) print binascii.hexlify(out_data) r_data = gzip_uncompress(out_data) print r_data raw_f = '/opt/log/raw/access.log_HLJYD-ICS-68_20150609040506.old' #raw_f = '/home/taoyx/program_develop/python_dev/a.html'; gzip_f2 = '/opt/log/raw/access.log_HLJYD-ICS-68_20150609040506.gz' #gzip_f2 = '/home/taoyx/program_develop/python_dev/log_gz/cpm.access.log-20150225.gz' #gzip_f2 = '/home/taoyx/program_develop/python_dev/a.html.1.gz' compress_file(raw_f, gzip_f2) #gunzip_f = '/home/taoyx/program_develop/python_dev/log_gz/cpm.access.log-20150225.old' #gunzip_f = '/home/taoyx/program_develop/python_dev/a.html.1' #uncompress_file(gzip_f2, gunzip_f)
请自己修改输入和输出文件路径, 确保相应的文件存在, 取消相应的注释进行测试.
参考文献:
[1].https://docs.python.org/2/library/gzip.html
官网
[2]./article/8892095.html
相关文章推荐
- Python多线程
- install MySQL-python
- Python 魔术方法及调用方式
- python中的==和is
- Python Challenge(0-8)
- eclipse中建python项目并运行
- Python django admin 替换表单控件
- Python metaclasses
- 记录一下python easy_install和pip安装地址和方法
- python更改文字为竖排
- eclipse中新建python项目报错:Project interpreter not specified
- python max()函数的应用
- python max()函数的应用
- python max()函数的应用
- python max()函数的应用
- python max()函数的应用
- python max()函数的应用
- python max()函数的应用
- python max()函数的应用
- python max()函数的应用