Jak sprawdzić EOF w Pythonie?

Jak sprawdzić EOF w Pythonie? Znalazłem błąd w moim kodzie, w którym ostatni blok tekstu po separatorze nie jest dodawany do listy powrotu. A może jest lepszy sposób wyrażenia tej funkcji?

Oto mój kod:

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

questionAnswers(5)

yourAnswerToTheQuestion