发布于2026-07-13 阅读(0)
扫一扫,手机访问
说到Python自带的gzip模块,它其实是标准库里的一员大将,完全不需要额外折腾就能直接用。它基于GNU zip算法,专门用来对文件或字节数据进行压缩和解压缩,特别适合处理文本文件、日志文件这类场景。效果嘛,就是能把文件体积大幅压缩,既省磁盘空间,也能让传输效率上一个台阶。
gzip.open()这个函数,本质上和Python内置的open()函数长得差不多,拿起来就能上手。它接受文件路径、打开模式(比如'r'、'w'、'a';写文本文件用'wt',写二进制文件用'wb';'rt'用于读取文本,'rb'用于读取二进制数据)等参数,最终返回一个类似于文件对象的GzipFile对象,支持常规的读写操作。
案例:创建并写入压缩文件
import gzip
# 创建一个压缩文件并写入内容
with gzip.open('log.txt.gz', 'wt') as f:
f.write("这是一段用于测试压缩的文本内容。")
说明:这段代码用了'wt'模式(w表示写入,t表示文本模式)创建一个叫log.txt.gz的压缩文件,顺手写了一行文本进去。with语句的好处是——文件用完了自动关闭,省心。
案例:读取压缩文件内容
import gzip
# 读取压缩文件内容
with gzip.open('log.txt.gz', 'rt') as f:
content = f.read()
print(content)
说明:这次用'rt'模式打开压缩文件,把里面的文本内容读出来直接打印。
gzip.compress()方法干的事情,是在内存里对字节数据直接压缩,并不会生成实际的文件。你只需要把需要压缩的字节数据传进去,它就把压缩后的字节数据还给你。

gzip.decompress()方法则是压缩的逆操作,用来解压缩字节数据。接收压缩后的字节数据,返回解压缩后的原始数据。
案例:压缩字节数据
import gzip data = b"这是一段待压缩的字节数据,内容可以是任意二进制信息。" compressed_data = gzip.compress(data) uncompressed_data = gzip.decompress(compressed_data).decode() #解码为字符 print(compressed_data) print(uncompressed_data)
输出:
b'\x1f\x8b\x08\x00\xdaqMh\x02\xff\x01N\x00\xb1\xff\xe8\xbf\x99\xe6\x98\xaf\xe8\xbf\x99\xe6\x98\xaf\xe4\xb8\x80\xe6\xae\xb5\xe5\xbe\x85\xe5\x8e\x8b\xe7\xbc\xa9\xe7\x9a\x84\xe5\xad\x97\xe8\x8a\x82\xe6\x95\xb0\xe6\x8d\xae\xef\xbc\x8c\xe5\x86\x85\xe5\xae\xb9\xe5\x8f\xaf\xe4\xbb\xa5\xe6\x98\xaf\xe4\xbb\xbb\xe6\x84\x8f\xe4\xba\x8c\xe8\xbf\x9b\xe5\x88\xb6\xe4\xbf\xa1\xe6\x81\xaf\xe3\x80\x82\x1d\x140lN\x00\x00\x00'
gzip包还允许你获取和设置压缩文件的一些元数据信息,比如文件名、修改时间等。这些信息在日常文件管理和处理过程中,关键时候还挺管用。
案例:获取压缩文件元数据
import gzip
with gzip.open('log.txt.gz', 'r') as f:
print(f.name) # 输出压缩文件原始文件名
print(f.mtime) # 输出文件最后修改时间(时间戳)
掌握了gzip模块这些核心用法之后,在Python开发里处理数据压缩和解压缩任务,基本就能游刃有余了。无论是优化日志存储,还是提升网络传输效率,gzip都能发挥重要作用。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8