获取Python中所有正在运行的进程的STDOUT,STDERR

时间:2014-09-15 19:24:05

标签: python subprocess stdout

我是一个Python noob。

有没有办法在Python中获取所有正在运行的进程的STDOUT和STDERR?一些进程在很长一段时间后退出,并且它们的状态不断被写入STDOUT。

1 个答案:

答案 0 :(得分:0)

逐行获取子进程输出而不等待它关闭:

p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)
while True:
    o = p.stdout.readline()
    if not o:
        break
    print o

如果要从流程中读取每个'n'个字符,可以使用p.stdout.read(n)。

希望这会有所帮助。