Por que o stdout do subprocesso para um arquivo é gravado fora de ordem?

Eu tenho um script python que chama um executável. A saída do executável é redirecionada para um arquivo de log juntamente com algumas informações sobre a hora em que foi chamado. Por exemplo, usandopython -V como o executável para ilustrar:

import time, subprocess
with open('./LOGFILE.txt', 'a') as F:
    F.write('******\n')
    F.write('Events on %s :\n'%time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
    EXE_output = subprocess.call(['python', '-V'], stdout=F, stderr=F)

A saída do arquivoLOGFILE.txt é:

Python 2.7.3
******
Events on 2013-04-10 19:27:25 :

Onde eu estava esperando da seguinte forma:

******
Events on 2013-04-10 19:27:25 :
Python 2.7.3

Eu escrevi o****** e informações de horário no arquivo de log aberto antes de executar o subprocesso e redirecionar sua saída e erro para o arquivo. Por que encomendar assim? e como posso reordenar?

questionAnswers(1)

yourAnswerToTheQuestion