python byte gzip bytesio

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)