2017-06-21 49 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的確定以及。