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
相关产品推荐
相关产品推荐

