Почему подпроцесс stdout в файл записан не по порядку?
У меня есть сценарий Python, который вызывает исполняемый файл. Вывод исполняемого файла перенаправляется в файл журнала вместе с некоторой информацией о времени его вызова. Например, используяpython -V
как исполняемый файл для иллюстрации:
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)
Вывод файлаLOGFILE.txt
является:
Python 2.7.3
******
Events on 2013-04-10 19:27:25 :
Где я ожидал этого следующим образом:
******
Events on 2013-04-10 19:27:25 :
Python 2.7.3
Я написал******
и информацию о времени в открытом файле журнала перед запуском подпроцесса и перенаправлением его вывода и ошибки в файл. Почему заказ так? и как я могу изменить порядок?