通过STDOUT与运行中的进程通信
我创建了一个正在运行的程序,它可以接收输入:
listen = Popen(["home/user/listen"], stdout=PIPE, stdin=PIPE)
这个程序会运行并等待从标准输入(STDIN)和标准输出(STDOUT)接收信息。
不过,似乎我无法让它执行我发送给它的任何指令,也就是说,像按“回车”键那样执行,比如:
listen.communicate("Test")
或者
listen.stdout("Test")
它会把字符串写到标准输出,但并不会执行这些指令,我必须手动按“回车”。有没有办法解决这个问题呢?
2 个回答
1
在使用 home/user/listen
的时候,它会等到这一行结束吗?如果是的话,你可以在你的命令后面加上 \n
,比如 listen.communicate("Test\n")
。
1
我找到了解决办法:
listen.stdin.write("%s" %input)
listen.stdin.write("\n")