Python的解释器默认启用输出缓冲sys.stdout吗?
如果答案是肯定的,那么禁用它的所有方法是什么?
建议到目前为止:
-u命令行开关sys.stdout在每次写入后刷新的对象PYTHONUNBUFFEREDenv varsys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)是否有任何其他方式来设置一些全局标志sys/ sys.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)
Run Code Online (Sandbox Code Playgroud)
该文件的输出LOGFILE.txt是:
Python 2.7.3
******
Events on 2013-04-10 19:27:25 :
Run Code Online (Sandbox Code Playgroud)
我期待的地方如下:
******
Events on 2013-04-10 19:27:25 :
Python 2.7.3
Run Code Online (Sandbox Code Playgroud)
******在运行子进程并将其输出和错误重定向到文件之前,我在打开的日志文件中编写了时间信息.为什么这样订购?我该如何重新排序?