Escrever e ler bytes na memória (BytesIO) fornece um resultado em branco

Eu queria experimentar a classe python BytesIO.

Como experimento, tentei gravar em um arquivo zip na memória e depois ler os bytes de volta desse arquivo zip. Então, ao invés de passar um objeto de arquivo paragzipEu passo em umBytesIO objeto. Aqui está o script inteiro:

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)

Mas está retornando um vaziobytes objeto pararesult. Isso acontece no Python 2.7 e 3.4. o que estou perdendo?

questionAnswers(1)

yourAnswerToTheQuestion