Falha ao obter dados usando read () de StringIO em python

Usando a versão Python2.7. Abaixo está o meu código de amostra.

import StringIO
import sys

buff = StringIO.StringIO()
buff.write("hello")
print buff.read()

no programa acima, read () não me retorna nada onde getvalue () me retorna "hello". Alguém pode me ajudar na correção do problema? Eu preciso ler () porque meu código a seguir envolve a leitura de "n" bytes.