0

我正在使用subprocess.call,我需要获取 stdout 和 stderr 的输出。我怎样才能做到这一点?

注意check_output()

注意 不要将此函数与 stdout=PIPE 或 stderr=PIPE 一起使用。由于当前进程中没有读取管道,因此如果子进程向管道生成足够的输出以填满 OS 管道缓冲区,则子进程可能会阻塞。

我的调用可能会产生大量输出,那么获取输出的安全方法是什么?

4

2 回答 2

1

像这样的东西会起作用:

f = file('output.txt','w')
g = file('err.txt','w')

p = subprocess.Popen(cmd, shell=True, stdout=f, stderr=g)

f.close()
g.close()
于 2013-05-04T20:07:16.043 回答
0

创建一个为写入而打开的文件对象,并将其传递为sdtoutstderr

于 2013-05-04T18:49:43.840 回答