python开发_zlib_完整版_博主推荐
时间:2022-06-10
本文章向大家介绍python开发_zlib_完整版_博主推荐,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
'''
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 win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
压缩内容:[b'xx9c5xcc1x0fxc2 x10x05xe0x9d_Axc2\njx942U]\x1cx9ax18xf7xb6xc1BBxefx1ax8aAxfbxebxa5x1ao{_xde;6xbdxa3Exa0x8bwx1d!xecxf8xcc)PM/x08C4@xd8xb5uxfex86YxecOx16x04S?xf05fxe7=x8ex845r]Oxd3xfdNx1ddxa5dExd8xc9xe3xf05x1bxe3xa4xcb2xa5xc4{xe8xb2xcexebxa8xb4xffxf7xe7`xdahrq#xe4xb6x10xaax90x8axb0xbbtxb3Cxd0Trxf1x01"a1*']
b'#python zlibnn#Author : Hongtenn#MailTo : hongtenzone@foxmail.comn#QQ : 648719819n#Blog : http://www.cnblogs.com/hongtenn#Create : 2013-08-18n#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 win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
打开文件:[c:testtest.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:testcom.txt]
写入内容:[b'xx9c5xcc1x0fxc2 x10x05xe0x9d_Axc2\njx942U]\x1cx9ax18xf7xb6xc1BBxefx1ax8aAxfbxebxa5x1ao{_xde;6xbdxa3Exa0x8bwx1d!xecxf8xcc)PM/x08C4@xd8xb5uxfex86YxecOx16x04S?xf05fxe7=x8ex845r]Oxd3xfdNx1ddxa5dExd8xc9xe3xf05x1bxe3xa4xcb2xa5xc4{xe8xb2xcexebxa8xb4xffxf7xe7`xdahrq#xe4xb6x10xaax90x8axb0xbbtxb3Cxd0Trxf1x01"a1*']
打开文件:[c:testcom.txt]
读取内容:[b'xx9c5xcc1x0fxc2 x10x05xe0x9d_Axc2\njx942U]\x1cx9ax18xf7xb6xc1BBxefx1ax8aAxfbxebxa5x1ao{_xde;6xbdxa3Exa0x8bwx1d!xecxf8xcc)PM/x08C4@xd8xb5uxfex86YxecOx16x04S?xf05fxe7=x8ex845r]Oxd3xfdNx1ddxa5dExd8xc9xe3xf05x1bxe3xa4xcb2xa5xc4{xe8xb2xcexebxa8xb4xffxf7xe7`xdahrq#xe4xb6x10xaax90x8axb0xbbtxb3Cxd0Trxf1x01"a1*']
压缩内容:[b'xx9c5xcc1x0fxc2 x10x05xe0x9d_Axc2\njx942U]\x1cx9ax18xf7xb6xc1BBxefx1ax8aAxfbxebxa5x1ao{_xde;6xbdxa3Exa0x8bwx1d!xecxf8xcc)PM/x08C4@xd8xb5uxfex86YxecOx16x04S?xf05fxe7=x8ex845r]Oxd3xfdNx1ddxa5dExd8xc9xe3xf05x1bxe3xa4xcb2xa5xc4{xe8xb2xcexebxa8xb4xffxf7xe7`xdahrq#xe4xb6x10xaax90x8axb0xbbtxb3Cxd0Trxf1x01"a1*']
解压缩内容:[b'xx9c5xcc1x0fxc2 x10x05xe0x9d_Axc2\njx942U]\x1cx9ax18xf7xb6xc1BBxefx1ax8aAxfbxebxa5x1ao{_xde;6xbdxa3Exa0x8bwx1d!xecxf8xcc)PM/x08C4@xd8xb5uxfex86YxecOx16x04S?xf05fxe7=x8ex845r]Oxd3xfdNx1ddxa5dExd8xc9xe3xf05x1bxe3xa4xcb2xa5xc4{xe8xb2xcexebxa8xb4xffxf7xe7`xdahrq#xe4xb6x10xaax90x8axb0xbbtxb3Cxd0Trxf1x01"a1*']
b'#python zlibnn#Author : Hongtenn#MailTo : hongtenzone@foxmail.comn#QQ : 648719819n#Blog : http://www.cnblogs.com/hongtenn#Create : 2013-08-18n#Version: 1.0'
>>>
===============================================
代码部分:
===============================================
1 #python zlib
2
3 #Author : Hongten
4 #MailTo : hongtenzone@foxmail.com
5 #QQ : 648719819
6 #Blog : http://www.cnblogs.com/hongten
7 #Create : 2013-08-18
8 #Version: 1.0
9
10 '''
11 python中的zlib模块提供了压缩和解压缩的方法
12
13 实现功能:
14
15 读取一个文件的内容,然后把该文件的内容以字符串的形式返回
16 然后对返回回来的字符串进行压缩处理,然后写入到另一个文件中
17 同时,也提供一个方法进行对压缩内容进行解压缩
18 '''
19
20 import os
21 import zlib
22
23 #global var
24 #打印日志信息
25 SHOW_LOG = True
26 #原信息存放地址
27 ORI_PATH = ''
28 #压缩后文件存放地址
29 COM_PATH = ''
30
31 def get_content(path):
32 '''读取一个文件的内容,然后把该文件的内容以字符串的形式返回'''
33 if os.path.exists(path):
34 c = ''
35 if SHOW_LOG:
36 print('打开文件:[{}]'.format(path))
37 with open(path, 'r+') as pf:
38 for line in pf:
39 if SHOW_LOG:
40 print('读取内容:[{}]'.format(line))
41 c += line
42 return c
43 else:
44 print('the path [{}] is not exist!'.format(path))
45
46 def compress_test(data):
47 '''对data进行压缩,然后返回压缩后的内容'''
48 if SHOW_LOG:
49 print('压缩内容:[{}]'.format(data))
50 return zlib.compress(bytes(data, 'utf-8'))
51
52 def decompress_test(cdata):
53 '''对cdata进行解压缩,然后返回解压缩后的内容'''
54 if SHOW_LOG:
55 print('解压缩内容:[{}]'.format(cdata))
56 return zlib.decompress(cdata)
57
58 def write_file(path, data):
59 '''把data写入到指定的文件'''
60 if os.path.exists(path):
61 if SHOW_LOG:
62 print('打开文件:[{}]'.format(path))
63 with open(path, 'w+') as pf:
64 pf.write(str(data))
65 if SHOW_LOG:
66 print('写入内容:[{}]'.format(data))
67 pf.close()
68 else:
69 print('the path [{}] is not exist!'.format(path))
70
71 def init():
72 global SHOW_LOG
73 SHOW_LOG = True
74 global ORI_PATH
75 ORI_PATH = 'c:\test\test.txt'
76 global COM_PATH
77 COM_PATH = 'c:\test\com.txt'
78
79
80 def main():
81 init()
82 #获取原信息
83 data = get_content(ORI_PATH)
84 #对内容进行压缩
85 cdata = compress_test(data)
86 #写入压缩文件内容
87 write_file(COM_PATH, cdata)
88 #获取压缩文件内容
89 c_data = get_content(COM_PATH)
90 print('压缩内容:[{}]'.format(c_data))
91 #解压信息
92 dedata = decompress_test(cdata)
93 print(dedata)
94
95
96 if __name__ == '__main__':
97 main()
- HDUOJ---2546 饭卡
- 假期前的数据库检查脚本之主备关系(r11笔记第46天)
- HDUOJ----1003 Max Sum
- HDUOJ--Bone Collector
- HDUOJ--1058HangOver
- 免插件实现WordPress的Sitemap功能
- HDUOJ--1865 1string
- Golang语言延迟函数defer用法分析
- HDUOJ---大菲波数
- HDUOJ Children’s Queue
- HDUOJ----1250 Hat's Fibonacci
- HDUOJ---1133(卡特兰数扩展)Buy the Ticket
- HDUOJ--2079选课时间(题目已修改,注意读题)
- HDUOJ---2082
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- MySQL--索引及优化查询
- Nginx 配置相关--Gzip压缩、CORS
- Webpack+Vue2项目结构生成
- 关于跨域以及Spring Boot的解决方案
- FFmpeg进行音频的解码和播放
- Gitbook 安装及使用
- MySQL 视图、过程、函数
- 基于Spring Boot + Dubbo的全链路日志追踪(二)
- 基于Spring Boot + Dubbo的全链路日志追踪(一)
- 使用C语言编写Python扩展包
- PlantUML基本使用(一)--时序图
- gRPC基本使用(一)--java与go之间的相互调用
- confd基本使用--Nginx配置自动化
- JVM自定义类加载器
- Java代理相关:JDK动态代理、CGLIB动态代理