나는 실행 파일을 호출하는 python 스크립트를 가지고있다. 실행 파일의 출력은 호출 된 시간에 대한 정보와 함께 로그 파일로 리디렉션됩니다. 예를 들어, 실행으로 python -V
를 사용하여이 설명하기 :파일에 대한 서브 프로세스 stdout가 순서가 맞지 않는 이유는 무엇입니까?
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
내가 쓴 서브 프로세스를 실행하고 출력 및 오류를 파일로 재지 정하기 전에 열린 로그 파일의 ******
및 시간 정보. 왜 그런 주문입니까? 어떻게 재정렬 할 수 있습니까?
하위 프로세스를 실행하기 전에 F.flush()를 시도하십시오. – gcbirzan
일했습니다! 약간의 설명과 함께 답으로 게시 할 수 있습니까? – amyassin