zlib主要用于压缩与解压缩

  • 字符串:使用zlib.compress可以压缩字符串。使用zlib.decompress可以解压字符串。
  • 数据流:压缩:compressobj,解压:decompressobj

示例代码:

import zlibdata = 'abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz' \'abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz'
print(len(data))
print(data)# 压缩
compressed_data = zlib.compress(data.encode())  # 注意:这儿要以字节的形式传入
print(len(compressed_data))
print(compressed_data)# 解压
new_data = zlib.decompress(compressed_data).decode()
print(len(new_data))
print(new_data)

运行结果:

示例代码2:

import zlib# 压缩文件或数据
def compress_data(file, zip_file, level=9):file = open(file, 'rb')zip_file = open(zip_file, 'wb')compress = zlib.compressobj(level)data = file.read(1024)while data:zip_file.write(compress.compress(data))data = file.read(1024)zip_file.write(compress.flush())file.close()zip_file.close()# 解压文件或数据
def decompress_data(zip_file, new_file):zip_file = open(zip_file, 'rb')new_file = open(new_file, 'wb')decompress = zlib.decompressobj()data = zip_file.read(1024)while data:new_file.write(decompress.decompress(data))data = zip_file.read(1024)new_file.write(decompress.flush())zip_file.close()new_file.close()if __name__ == '__main__':file = 'text.txt'zip_file = 'text_zip.txt'compress_data(file, zip_file)new_file = 'test_new.txt'decompress_data(zip_file, new_file)print('end!')

运行结果:

注意:compressobj返回一个压缩对象,用来压缩不能一下子读入内存的数据流。 level 从9到-1表示压缩等级,其中1最快但压缩度最小,9最慢但压缩度最大,0不压缩,默认是-1大约相当于与等级6,是一个压缩速度和压缩度适中的level。

python中zlib库用法详解(压缩与解压缩)相关推荐

  1. python中os库用法详解(总结)

    os库主要是对文件和文件夹进行操作,在Python中对⽂件和⽂件夹的操作要借助os模块⾥⾯的相关功能. 具体步骤如下: 1. 导⼊os模块 import os 2. 使⽤ os 模块相关功能 os.函 ...

  2. python中dns库用法详解(DNS处理模块)

    dnspython是python 实现的一个dns场景的工具包. dnspython(http://www.dnspython.org/)是Python实现的一个DNS工具包,它支持几乎所有的记录类型 ...

  3. python中gzip库用法详解(压缩和解压缩)

    1.使用gzip创建一个文件: 示例代码: import gzip# 创建一个gzip文件 content = "Hello world!" f = gzip.open('file ...

  4. python中flask_caching库用法详解(缓存)

    为了尽量减少缓存穿透,并同时减少web的响应时间,可以针对那些需要一定时间才能获取结果的函数和那些不需要频繁更新的视图函数提供缓存服务,可以在一定的时间内直接返回结果而不是每次都需要计算或者从数据库中 ...

  5. python中openpyxl库用法详解

    openpyxl模块是一个读写Excel 文档的Python库,openpyxl是一个比较综合的工具,能够同时读取和修改Excel文档. openpyxl.load_workbook(地址) - 打开 ...

  6. python中cpca库用法详解(从文本中提取省市区)

    一个用于提取简体中文字符串中省,市和区并能够进行映射,检验和简单绘图的python模块. 首先安装cpca库: pip install cpca Github: GitHub - DQinYuan/c ...

  7. python中IPy库用法详解

    使用python遍历所有的ip,可以借助第三方库IPy来获取所有的ip. 安装IPy库: pip install IPy 1.遍历IP网段中所有IP并打印个数 示例代码1: import IPydef ...

  8. python中ipaddress库用法详解

    ipaddress库提供了处理IPv4与IPv6网络地址的类.这些类支持验证,查找网络上的地址和主机,以及其他常见的操作. 示例代码1: import ipaddressx = ipaddress.i ...

  9. python中ipaddr库用法详解

    首先安装ipaddr库 pip install ipaddr 判断一个IP地址是否在某个网段内: import ipaddrip = ipaddr.IPv4Address("192.168. ...

最新文章

  1. jQuery中的.bind()、.live()和.delegate()之间区别分析
  2. 信息批量提取工具bulk-extractor
  3. CPU分时、中断和上下文切换
  4. Oracle取最大/最小值函数
  5. word List35
  6. ubuntu 14.04中文显示乱码问题
  7. JavaScript绑定this
  8. 关于ASP.Net的导入导出(6)
  9. 13. JavaScript 字符串(String)对象
  10. 电路设计中发光二极管用作指示灯时的限流电阻如何选择
  11. reboot无法进入grub开机选单
  12. 我们应该怎么去认识信贷
  13. 低代码行业风涌云起,他们靠什么跻身全球第一阵营?
  14. 数据库oracle--PL/SQL的使用-如何按f8只执行一行
  15. sublime text3 镜像下载_Sublime Text 3
  16. 大数据可视化设计开发方案调研
  17. HLK-V40 TTS语音模块使用说明
  18. 论面向服务架构设计及其应用
  19. 热血江湖服务端 linux,热血江湖V2.0商业服务端百宝阁 GM工具+客户端+架设教程
  20. centos7使用yum安装MySQL8.0

热门文章

  1. rollup打包工具
  2. 输入框过滤表情和颜文字
  3. 利用FME计算椭球面积
  4. Java枚举—枚举进阶
  5. 简单枚举 / 枚举排列
  6. Pie-1-南丁格尔玫瑰图-中心带文字
  7. TO B销售谈判经验 TO B销售技巧分享
  8. 双系统安装deepin20_win10+deepin双系统安装方法(UEFI+GPT)
  9. ElasticSearch中的分片(shards)是什么
  10. Vue3生命周期函数的那些事