2017-06-21 7 views
0

Ich möchte diese Linie von bash in python 2.6 implementieren.gzip string, dann base64 Wert von gzip

echo 'some string' | gzip | base64

Im Moment habe ich dies:

import io 
import gzip 
import base64 

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

Ich bin nicht sicher, was als nächstes zu tun, weil ich um mit verschiedenen Methoden gespielt habe und ich immer Fehler für die verschiedenen bekommen Methoden, die ich versuche. Ich bin mir nicht sicher, ob ich in die richtige Richtung gehe

Antwort

2

Zuerst in ist ein Schlüsselwort, kann nicht als Variablenname verwendet werden.

Dann erstellen Sie das BytesIO Objekt leer, dann verwenden Sie das GZipFile Handle, um in es schreiben, im Binärmodus.

Wenn Sie fertig sind, rufen Sie den Inhalt des BytesIO Strom und kodieren sie mit 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())) 

Ergebnis:

b'H4sIAF8LSlkC/w==\n' 

mit Python getestet 3.4, sollte auch mit Python 2.x OK arbeiten .