如何在python中使用子进程监视stdout?

时间:2010-10-06 06:01:45

标签: python subprocess

我有一个linux应用程序,它使用stdin从命令行交互运行以接受命令。我已经编写了一个使用子进程的包装器来访问stdin,而应用程序是后台运行的。我现在可以使用p.stdin.write(命令)向它发送命令,但我该如何监控其响应呢?

1 个答案:

答案 0 :(得分:1)

p.stdout读取以访问流程的输出。

根据流程的具体操作,您可能必须小心确保在p.stdout p阻止其stdin时阻止while still_going: p.stdin.write('blah\n') print p.stdout.readline() 。如果您确定每次写入它都会输出一行,您可以简单地在这样的循环中交替:

{{1}}

但是,如果输出更零星,您可能需要查看select模块,以更灵活的方式在读取和写入之间切换。