python使用zlib实现压缩与解压字符串
Python 实现 字符串 压缩 解压 zlib 使用
2023-09-27 14:25:21 时间
命令
字符串:使用zlib.compress可以压缩字符串。使用zlib.decompress可以解压字符串。
数据流:压缩:compressobj,解压:decompressobj
案例
>>> import zlib >>> s = 'slfsjdalfkasflkkdkaleeeeeeeeeeeeeeeeeeeeeeeeeeeelaaalkllfksaklfasdll kkkkkk123' >>> zlib_s = zlib.compress(s) >>> zlib_s 'x\x9c}\xca\xb1\r\xc0 \x10\x04\xc1Vh\xc1\xb8\xa2\x93\x9e\x0f|\x9b]\xff\x92\x11\x050\xf1\x84\xceW\xa2\xad4vY\xac\x0b$a\xf6\x8fL+\x05c\xf8x\xe6\xfb\x03\xf7\x97\x1e\xd1' >>> print tlen(s) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'tlen' is not defined >>> print len(s) 79 >>> print len(zlib_s) 55
>>> ss = zlib.decompress(zlib_s) >>> ss 'slfsjdalfkasflkkdkaleeeeeeeeeeeeeeeeeeeeeeeeeeeelaaalkllfksaklfasdll kkkkkk123'
压缩与解压缩文件
import zlib def compress(infile, dst, level=9): infile = open(infile, 'rb') dst = open(dst, 'wb') compress = zlib.compressobj(level) data = infile.read(1024) while data: dst.write(compress.compress(data)) data = infile.read(1024) dst.write(compress.flush()) def decompress(infile, dst): infile = open(infile, 'rb') dst = open(dst, 'wb') decompress = zlib.decompressobj() data = infile.read(1024) while data: dst.write(decompress.decompress(data)) data = infile.read(1024) dst.write(decompress.flush()) if __name__ == "__main__": infile = "1.txt" dst = "1.zlib.txt" compress(infile, dst) infile = "1.zlib.txt" dst = "2.txt" decompress(infile, dst) print "done~"
注:compressobj返回一个压缩对象,用来压缩不能一下子读入内存的数据流。 level 从9到-1表示压缩等级,其中1最快但压缩度最小,9最慢但压缩度最大,0不压缩,默认是-1大约相当于与等级6,是一个压缩速度和压缩度适中的level。
相关文章
- Python 爬虫+tkinter界面 实现历史天气查询
- 综合能源系统分析的统一能路理论(三):《稳态与动态潮流计算》(Python代码实现)
- 电力系统激励型需求响应+自适应多群体优化算法(Python实现)
- 基于麻雀搜索算法(SSA)优化长短期记忆神经网络参数SSA-LSTM冷、热、电负荷预测(Python代码实现)
- 用随机投掷飞镖法计算Pi值(Randomness Throwing dart Pi Python)
- python 之文件 编码问题
- 怎么用Python实现接口测试?搞不清楚这几点又是白费功夫...
- 【源码】学生疫情期间信息管理系统(python实现)
- 【机器学习】【条件随机场CRF-2】CRF的预测算法之维特比算法(viterbi alg) 详解 + 示例讲解 + Python实现
- 程序模拟浏览器请求及会话保持-python实现
- 【Python】Django auth 修改密码如何实现?
- [Python]通过python-jenkins操作jenkins slave启动job | 通过python-jenkins实现ios自动化打包接口
- 菜鸟教程-所有软件教学都有【python、java、c、c++、html、sql、css、jquery、bootstrap、vue、c#、go】
- 【Python 之 Bluebridge Cup】day_003:数列排序 || 十六进制 转 八进制(附进制转换 初步解析) || 十六进制 转 十进制
- 十四届蓝桥杯青少组选拔赛Python_2023.03.12
- python+selenium win32gui实现文件上传 enumerate()
- python练习21 -- pysql模块
- 第8.30节 重写Python __setattr__方法实现属性修改捕获
- 【机器学习算法-python实现】svm支持向量机(1)—理论知识介绍
- scikit-opt——Python中的群体智能优化算法库
- 【Python】字符串 ⑤ ( Python 字符串快速格式化 | 不考虑变量类型 | 不考虑精度控制 )
- Python分支语句
- python实现:最长子字符串