我有一个linux应用程序,它使用stdin从命令行交互运行以接受命令。我已经编写了一个使用子进程的包装器来访问stdin,而应用程序是后台运行的。我现在可以使用p.stdin.write(命令)向它发送命令,但我该如何监控其响应呢?
答案 0 :(得分:1)
从p.stdout
读取以访问流程的输出。
根据流程的具体操作,您可能必须小心确保在p.stdout
p
阻止其stdin
时阻止while still_going:
p.stdin.write('blah\n')
print p.stdout.readline()
。如果您确定每次写入它都会输出一行,您可以简单地在这样的循环中交替:
{{1}}
但是,如果输出更零星,您可能需要查看select
模块,以更灵活的方式在读取和写入之间切换。