¿Cómo comprobar si hay EOF en Python?

¿Cómo verifico EOF en Python? Encontré un error en mi código donde el último bloque de texto después del separador no se agrega a la lista de retorno. ¿O tal vez hay una mejor manera de expresar esta función?

Aquí está mi código:

def get_text_blocks(filename):
    text_blocks = []
    text_block = StringIO.StringIO()
    with open(filename, 'r') as f:
        for line in f:
            text_block.write(line)
            print line
            if line.startswith('-- -'):
                text_blocks.append(text_block.getvalue())
                text_block.close()
                text_block = StringIO.StringIO()
    return text_blocks

Respuestas a la pregunta(5)

Su respuesta a la pregunta