Python中向gz(gzip)文件中写入utf8(utf-8)字符串

这是一个内牛满面的问题,我从半年前开始找这个问题的答案,今天才解决……

需求版本1:我需要将字符串直接写入成以gz格式,这个很简单。

import gzip
fp = gzip.open("file", "wb")
fp.write(data)
fp.close()

需求版本2:现在字符串data需要是utf-8的,上述方法就不行了,解决方法:

import codecs
gzfp = gzip.open("file", "wb")
writer = codecs.getwriter("utf-8")(gzfp)
writer.write(data)
gzfp.close()
writer.close()

读取也是类似的:

import codecs
fd0 = gzip.open(fname, 'rb')
fd = codecs.getreader("utf-8")(fd0)
data = fd.readline()

Leave a Reply

Your email address will not be published. Required fields are marked *