Python子进程输出到stdout

the*_*pon 12 python subprocess stdout

我正在使用子进程模块从python运行二进制文件.

要捕获二进制文件生成的输出,我使用:

proc = subprocess.Popen (command_args, shell=False, stdout=subprocess.PIPE)
out = proc.communicate()[0]
#print the output of the child process to stdout
print (out)
Run Code Online (Sandbox Code Playgroud)

这样做是在完成执行后打印进程的输出.无论如何我可以在程序执行时将此输出打印到stdout吗?我真的需要看看输出是什么,因为这些程序可以运行很长时间.

谢谢您的帮助.

Sve*_*ach 13

只是不要将输出发送到管道:

proc = subprocess.Popen (command_args, shell=False)
proc.communicate()
Run Code Online (Sandbox Code Playgroud)

  • @josh:是的,这是预期的,以及代码不将结果存储在变量中的原因.由于我们不将输出发送到管道,因此子进程将从当前进程继承stdout,这意味着所有内容都将直接打印到终端. (3认同)
  • 这不起作用:沟通返回(无,无) (2认同)