使用stdout / stderr重定向到文件启动子进程

时间:2014-07-04 17:57:26

标签: python stdout stderr child-process

我有一个Python脚本,我希望使用stdout生成子进程,并将stderr重定向到文件。我目前的方法如下:

import subprocess

# Do some stuff.
p = subprocess.Popen("/path/to/something",
                     stdout=open("/var/log/something.log", "a+"),
                     stderr=subprocess.STDOUT)
# Do some more stuff.
# Terminate the parent process and leave the child running and logging output.

这看起来像我想要的那样,但是在子进程中断之前没有任何内容从stdout记录到日志文件中。在不修改子进程的情况下,是否可以以与在控制台中显示stdout时类似的方式刷新输出? Stderr似乎正常冲洗。

我尝试使用bufsize=1作为the docs说“1表示行缓冲”。

0 个答案:

没有答案