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。
我想在 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。