python - Escribir y leer bytes en memoria(BytesIO) da un resultado en blanco
python stringio (1)
Quería probar la clase Python BytesIO.
Como experimento, intenté escribir en un archivo zip en la memoria y luego leer los bytes de ese archivo zip. Entonces, en lugar de pasar un archivo-objeto a gzip
, paso un objeto BytesIO
. Aquí está todo el guión:
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)
Pero devuelve un objeto de bytes
vacíos para el result
. Esto sucede tanto en Python 2.7 como en 3.4. ¿Qué me estoy perdiendo?
seek
volver al inicio del archivo después de escribir la inicial en el archivo de memoria ...
myio.seek(0)