繁体   English   中英

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

[英]how do I monitor stdout with subprocess in python?

我有一个Linux应用程序,可以使用stdin从命令行以交互方式运行以接受命令。 在应用程序后台运行时,我使用子进程编写了一个包装程序来访问stdin。 我现在可以使用p.stdin.write(command)向其发送命令,但是如何监视其响应?

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

根据过程的不同,您可能必须小心确保不要在p.stdoutp.stdoutp依次在其stdin上阻塞。 如果您确定每次写入都会输出一行,则可以简单地在如下循环中进行选择:

while still_going:
    p.stdin.write('blah\n')
    print p.stdout.readline()

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM