gzip 字符串,然后是 gzip 的 base64 值

gzip string, then base64 value of gzip

我想在 python 2.6 中实现 bash 的这一行。

echo 'some string' | gzip | base64

现在我有这个:

import io
import gzip
import base64

st = 'some string'
in = io.BytesIO(st)
gzz = gzip.GzipFile(fileobj=in)

我不确定下一步该怎么做,因为我一直在尝试不同的方法,而且我尝试的所有不同方法都不断出现错误。我不确定我的方向是否正确

首先in是关键字,不能作为变量名。

然后,创建空的 BytesIO 对象,然后使用 GZipFile 句柄写入它,使用二进制模式。

完成后,检索 BytesIO 流的内容并使用 base64.encode

对其进行编码
import io
import gzip
import base64

st = b'some string'
fo = io.BytesIO()
gzz = gzip.GzipFile(fileobj=fo,mode="wb")

gzz.write(st)

print(base64.encodebytes(fo.getvalue()))

结果:

b'H4sIAF8LSlkC/w==\n'

使用 Python 3.4 进行测试,应该也可以使用 python 2.x。