2017-06-21 48 views
0

我想在python 2.6实现这一行bashgzip字符串,然后gzip的base64值

echo 'some string' | gzip | base64

现在我有这样的:

import io 
import gzip 
import base64 

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

我不知道下一步该怎么做,因为我一直在用不同的方式玩弄和我不断收到错误,为所有不同我尝试的方法。我不确定我是否朝着正确的方向前进

回答

2

第一个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的确定以及。