相关疑难解决方法(0)

禁用输出缓冲

Python的解释器默认启用输出缓冲sys.stdout吗?

如果答案是肯定的,那么禁用它的所有方法是什么?

建议到目前为止:

  1. 使用-u命令行开关
  2. 包装sys.stdout在每次写入后刷新的对象
  3. 设置PYTHONUNBUFFEREDenv var
  4. sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)

是否有任何其他方式来设置一些全局标志sys/ sys.stdout程序执行过程中?

python stdout buffered

487
推荐指数
10
解决办法
25万
查看次数

为什么subprocess 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)

******在运行子进程并将其输出和错误重定向到文件之前,我在打开的日志文件中编写了时间信息.为什么这样订购?我该如何重新排序?

python redirect subprocess

7
推荐指数
1
解决办法
1352
查看次数

标签 统计

python ×2

buffered ×1

redirect ×1

stdout ×1

subprocess ×1