You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3写入.gz文件时遇报错的解决方法咨询

嘿,我来帮你解决这个Python3写入.gz文件的问题!

你之前踩的坑其实很常见——直接用普通的open()不管是二进制还是文本模式写.gz文件,本质上只是把字符串当成普通内容写入,根本没做gzip压缩处理,所以生成的文件是无效的压缩包,自然会报错。

正确的做法是用Python标准库自带的gzip模块来处理,它会帮你完成压缩编码的工作,下面给你两种常用的写法:

方法一:二进制模式写入(需要手动转字节)

这种方式适合处理字节流或者需要精确控制编码的场景:

import gzip

# 准备要写入的内容
content = "这是要放进压缩文件里的测试内容"

# 用gzip.open以二进制写入模式打开文件
with gzip.open('test.gz', 'wb') as f:
    # 把字符串转成utf-8编码的字节再写入
    f.write(content.encode('utf-8'))

方法二:文本模式写入(自动处理编码)

如果只是写普通字符串,用文本模式更方便,指定编码后直接写字符串就行:

import gzip

content = "这是另一段测试文本"

# 用wt模式(文本写入),同时指定编码
with gzip.open('test_text.gz', 'wt', encoding='utf-8') as f:
    f.write(content)

验证是否成功

你可以用下面的代码读取生成的.gz文件,确认内容正确:

with gzip.open('test.gz', 'rt', encoding='utf-8') as f:
    print(f.read())  # 会输出你写入的原始字符串

总结一下:一定要用gzip.open()而不是普通的open()来处理.gz文件,前者会自动帮你做压缩和解压缩的工作,这样生成的文件才是有效的gzip压缩包。

内容的提问来源于stack exchange,提问作者AgvaniaRekuva

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:04:14