通过STDOUT与正在运行的进程通信

时间:2011-03-01 15:09:49

标签: python linux

我创建了一个侦听输入的运行进程:

listen = Popen(["home/user/listen"], stdout=PIPE, stdin=PIPE)

它运行并等待来自STDIN / STDOUT的输入。

不幸的是,似乎我无法执行我发送给流程的任何内容,例如您可以按“Enter”,例如

listen.communicate("Test")

listen.stdout("Test")

将字符串写入STDOUT但不执行它,我必须手动按“Enter”。有什么方法可以解决这个问题吗?

P.S。我指的是http://docs.python.org/library/subprocess.html

2 个答案:

答案 0 :(得分:1)

home/user/listen等待行结束吗?如果是,请在命令末尾添加\n,例如listen.communicate("Test\n")

答案 1 :(得分:1)

我找到了解决方案:

listen.stdin.write("%s" %input)
listen.stdin.write("\n")