2017-06-21 1 views
0

bashのこの行をpython 2.6に実装したいと思います。gzip文字列、次にgzipのbase64値

import io 
import gzip 
import base64 

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

私はさまざまな方法で遊んでてきたので、次に何をすべきかわからないんだけど、私はすべての異なるのエラーを得続ける:

echo 'some string' | gzip | base64

は、今のところ私はこれを持っています方法を試してみてください。私が正しい方向に向いているかどうか分かりません

答えて

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())) 

結果でそれをコード化:Pythonの3.4でテスト

b'H4sIAF8LSlkC/w==\n' 

は、同様のpython 2.xのでOK動作するはずです。