Schreiben und Lesen von Bytes im Speicher (BytesIO) ergibt ein leeres Ergebnis

Ich wollte die Python-Klasse BytesIO ausprobieren.

Als Experiment habe ich versucht, in eine Zip-Datei im Speicher zu schreiben und dann die Bytes aus dieser Zip-Datei zurückzulesen. Also anstatt ein Datei-Objekt an @ zu übergebgzip, Ich gebe ein @ eBytesIO Objekt. Hier ist das gesamte Skript:

from io import BytesIO
import gzip

# write bytes to zip file in memory
myio = BytesIO()
g = gzip.GzipFile(fileobj=myio, mode='wb')
g.write(b"does it work")
g.close()

# read bytes from zip file in memory
g = gzip.GzipFile(fileobj=myio, mode='rb')
result = g.read()
g.close()

print(result)

Aber es wird ein leeres @ zurückgegebbytes Objekt fürresult. Dies passiert sowohl in Python 2.7 als auch in 3.4. Was vermisse ich

Antworten auf die Frage(1)

Ihre Antwort auf die Frage