【发布时间】:2013-04-02 15:06:30
【问题描述】:
我有一个调用可执行文件的 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
在运行子进程并将其输出和错误重定向到文件之前,我在打开的日志文件中写入了****** 和时间信息。为什么会这样下单?以及如何重新排序?
【问题讨论】:
-
在运行子进程之前尝试 F.flush()。
-
成功了!您可以将其发布为带有一点解释的答案吗?
标签: python subprocess redirect