Escribir y leer bytes en memoria (BytesIO) da un resultado en blanco

Quería probar la clase Python BytesIO.

Como experimento, intenté escribir en un archivo zip en la memoria y luego leer los bytes de nuevo de ese archivo zip. Entonces, en lugar de pasar un archivo-objeto agzip, Paso en unBytesIO objeto. Aquí está el guión completo:

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 está devolviendo un vacíobytes objeto pararesult. Esto sucede en Python 2.7 y 3.4. ¿Qué me estoy perdiendo?

Respuestas a la pregunta(1)

Su respuesta a la pregunta