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