python中的zlib模块提供了压缩和解压缩的方法
来源:互联网 发布:条件选股软件 编辑:程序博客网 时间:2024/06/04 20:13
转载自http://www.cnblogs.com/hongten/p/hongten_python_zlib.html
'''
python中的zlib模块提供了压缩和解压缩的方法实现功能:
读取一个文件的内容,然后把该文件的内容以字符串的形式返回
然后对返回回来的字符串进行压缩处理,然后写入到另一个文件中
同时,也提供一个方法进行对压缩内容进行解压缩
'''
以下是我做的功能实现,代码中我写了详细的注释,详情如下:
SHOW_LOG = False
Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)] on win32Type "copyright", "credits" or "license()" for more information.>>> ================================ RESTART ================================>>>压缩内容:[b'x\x9c5\xcc1\x0f\xc2 \x10\x05\xe0\x9d_A\xc2\\\nj\x942U]\\\x1c\x9a\x18\xf7\xb6\xc1BB\xef\x1a\x8aA\xfb\xeb\xa5\x1ao{_\xde;6\xbd\xa3E\xa0\x8bw\x1d!\xec\xf8\xcc)PM/\x08C4@\xd8\xb5u\xfe\x86Y\xecO\x16\x04S?\xf05f\xe7=\x8e\x845\r]O\xd3\xfdN\x1dd\xa5dE\xd8\xc9\xe3\xf05\x1b\xe3\xa4\xcb2\xa5\xc4{\xe8\xb2\xce\xeb\xa8\xb4\xff\xf7\xe7`\xdahrq#\xe4\xb6\x10\xaa\x90\x8a\xb0\xbb\t\xb3C\xd0Tr\xf1\x01"a1*']b'#python zlib\n\n#Author : Hongten\n#MailTo : hongtenzone@foxmail.com\n#QQ : 648719819\n#Blog : http://www.cnblogs.com/hongten\n#Create : 2013-08-18\n#Version: 1.0'>>>
SHOW_LOG = True
Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)] on win32Type "copyright", "credits" or "license()" for more information.>>> ================================ RESTART ================================>>>打开文件:[c:\test\test.txt]读取内容:[#python zlib]读取内容:[]读取内容:[#Author : Hongten]读取内容:[#MailTo : hongtenzone@foxmail.com]读取内容:[#QQ : 648719819]读取内容:[#Blog : http://www.cnblogs.com/hongten]读取内容:[#Create : 2013-08-18]读取内容:[#Version: 1.0]压缩内容:[#python zlib#Author : Hongten#MailTo : hongtenzone@foxmail.com#QQ : 648719819#Blog : http://www.cnblogs.com/hongten#Create : 2013-08-18#Version: 1.0]打开文件:[c:\test\com.txt]写入内容:[b'x\x9c5\xcc1\x0f\xc2 \x10\x05\xe0\x9d_A\xc2\\\nj\x942U]\\\x1c\x9a\x18\xf7\xb6\xc1BB\xef\x1a\x8aA\xfb\xeb\xa5\x1ao{_\xde;6\xbd\xa3E\xa0\x8bw\x1d!\xec\xf8\xcc)PM/\x08C4@\xd8\xb5u\xfe\x86Y\xecO\x16\x04S?\xf05f\xe7=\x8e\x845\r]O\xd3\xfdN\x1dd\xa5dE\xd8\xc9\xe3\xf05\x1b\xe3\xa4\xcb2\xa5\xc4{\xe8\xb2\xce\xeb\xa8\xb4\xff\xf7\xe7`\xdahrq#\xe4\xb6\x10\xaa\x90\x8a\xb0\xbb\t\xb3C\xd0Tr\xf1\x01"a1*']打开文件:[c:\test\com.txt]读取内容:[b'x\x9c5\xcc1\x0f\xc2 \x10\x05\xe0\x9d_A\xc2\\\nj\x942U]\\\x1c\x9a\x18\xf7\xb6\xc1BB\xef\x1a\x8aA\xfb\xeb\xa5\x1ao{_\xde;6\xbd\xa3E\xa0\x8bw\x1d!\xec\xf8\xcc)PM/\x08C4@\xd8\xb5u\xfe\x86Y\xecO\x16\x04S?\xf05f\xe7=\x8e\x845\r]O\xd3\xfdN\x1dd\xa5dE\xd8\xc9\xe3\xf05\x1b\xe3\xa4\xcb2\xa5\xc4{\xe8\xb2\xce\xeb\xa8\xb4\xff\xf7\xe7`\xdahrq#\xe4\xb6\x10\xaa\x90\x8a\xb0\xbb\t\xb3C\xd0Tr\xf1\x01"a1*']压缩内容:[b'x\x9c5\xcc1\x0f\xc2 \x10\x05\xe0\x9d_A\xc2\\\nj\x942U]\\\x1c\x9a\x18\xf7\xb6\xc1BB\xef\x1a\x8aA\xfb\xeb\xa5\x1ao{_\xde;6\xbd\xa3E\xa0\x8bw\x1d!\xec\xf8\xcc)PM/\x08C4@\xd8\xb5u\xfe\x86Y\xecO\x16\x04S?\xf05f\xe7=\x8e\x845\r]O\xd3\xfdN\x1dd\xa5dE\xd8\xc9\xe3\xf05\x1b\xe3\xa4\xcb2\xa5\xc4{\xe8\xb2\xce\xeb\xa8\xb4\xff\xf7\xe7`\xdahrq#\xe4\xb6\x10\xaa\x90\x8a\xb0\xbb\t\xb3C\xd0Tr\xf1\x01"a1*']解压缩内容:[b'x\x9c5\xcc1\x0f\xc2 \x10\x05\xe0\x9d_A\xc2\\\nj\x942U]\\\x1c\x9a\x18\xf7\xb6\xc1BB\xef\x1a\x8aA\xfb\xeb\xa5\x1ao{_\xde;6\xbd\xa3E\xa0\x8bw\x1d!\xec\xf8\xcc)PM/\x08C4@\xd8\xb5u\xfe\x86Y\xecO\x16\x04S?\xf05f\xe7=\x8e\x845\r]O\xd3\xfdN\x1dd\xa5dE\xd8\xc9\xe3\xf05\x1b\xe3\xa4\xcb2\xa5\xc4{\xe8\xb2\xce\xeb\xa8\xb4\xff\xf7\xe7`\xdahrq#\xe4\xb6\x10\xaa\x90\x8a\xb0\xbb\t\xb3C\xd0Tr\xf1\x01"a1*']b'#python zlib\n\n#Author : Hongten\n#MailTo : hongtenzone@foxmail.com\n#QQ : 648719819\n#Blog : http://www.cnblogs.com/hongten\n#Create : 2013-08-18\n#Version: 1.0'>>>
===============================================
代码部分:
===============================================
#python zlib#Author : Hongten#MailTo : hongtenzone@foxmail.com#QQ : 648719819#Blog : http://www.cnblogs.com/hongten#Create : 2013-08-18#Version: 1.0''' python中的zlib模块提供了压缩和解压缩的方法 实现功能: 读取一个文件的内容,然后把该文件的内容以字符串的形式返回 然后对返回回来的字符串进行压缩处理,然后写入到另一个文件中 同时,也提供一个方法进行对压缩内容进行解压缩'''import osimport zlib#global var#打印日志信息SHOW_LOG = True#原信息存放地址ORI_PATH = ''#压缩后文件存放地址COM_PATH = ''def get_content(path): '''读取一个文件的内容,然后把该文件的内容以字符串的形式返回''' if os.path.exists(path): c = '' if SHOW_LOG: print('打开文件:[{}]'.format(path)) with open(path, 'r+') as pf: for line in pf: if SHOW_LOG: print('读取内容:[{}]'.format(line)) c += line return c else: print('the path [{}] is not exist!'.format(path))def compress_test(data): '''对data进行压缩,然后返回压缩后的内容''' if SHOW_LOG: print('压缩内容:[{}]'.format(data)) return zlib.compress(bytes(data, 'utf-8'))def decompress_test(cdata): '''对cdata进行解压缩,然后返回解压缩后的内容''' if SHOW_LOG: print('解压缩内容:[{}]'.format(cdata)) return zlib.decompress(cdata)def write_file(path, data): '''把data写入到指定的文件''' if os.path.exists(path): if SHOW_LOG: print('打开文件:[{}]'.format(path)) with open(path, 'w+') as pf: pf.write(str(data)) if SHOW_LOG: print('写入内容:[{}]'.format(data)) pf.close() else: print('the path [{}] is not exist!'.format(path))def init(): global SHOW_LOG SHOW_LOG = True global ORI_PATH ORI_PATH = 'c:\\test\\test.txt' global COM_PATH COM_PATH = 'c:\\test\\com.txt' def main(): init() #获取原信息 data = get_content(ORI_PATH) #对内容进行压缩 cdata = compress_test(data) #写入压缩文件内容 write_file(COM_PATH, cdata) #获取压缩文件内容 c_data = get_content(COM_PATH) print('压缩内容:[{}]'.format(c_data)) #解压信息 dedata = decompress_test(cdata) print(dedata)if __name__ == '__main__': main()
0 0
- python中的zlib模块提供了压缩和解压缩的方法
- ZLib的数据压缩和解压缩
- 关于zlib压缩和解压缩
- 压缩和解压缩的方法
- Delphi : ZLib的数据压缩和解压缩
- Zlib内存数据压缩和解压缩
- 使用Zlib实现压缩和解压缩
- 使用Zlib实现压缩和解压缩
- 使用Zlib实现压缩和解压缩
- Ruby中的压缩和解压缩的使用
- php压缩和解压缩字符串的方法
- node---zlib压缩模块
- c# 下怎么使用zlib/gzip压缩和解压缩?(GALGAME和Flash使用的压缩格式)
- 使用zlib/gzip压缩和解压缩?(Flash和GALGAME使用的压缩格式)
- python 文件压缩和解压缩
- GZipStream压缩和解压缩方法
- python zlib字符串压缩
- 文件的压缩和解压缩
- 进程与线程
- 进程间通信之管道和FIFO
- Java虚拟机类加载和执行机制
- C# 遍历文件夹及其子文件夹来查找某个文件
- scala学习之for与function的认识
- python中的zlib模块提供了压缩和解压缩的方法
- android 何时使用Service 何时使用Thread
- 第76讲:模式匹配下的赋值语句
- 深入hibernate的三种状态
- Java基础------多线程
- 服务器启动时Webapp的web.xml中配置的加载顺序
- 简单的Demo(按两次返回键退出)
- 就算全世界都觉得你不行那又怎样
- HDU 5347 MZL's chemistry(高三化学选修题)