【发布时间】:2011-03-28 01:41:07
【问题描述】:
我正在尝试将输入通过管道传输到在 Python 中作为子进程打开的程序。使用communicate() 做我想做的事,但它只做一次,然后等待子进程终止,然后再让事情继续。
有没有功能上类似于communicate()的方法或模块,但允许与子进程进行多次通信?
这是一个例子:
import subprocess
p = subprocess.Popen('java minecraft_server.jar',
shell=True,
stdin=subprocess.PIPE);
//Pipe message to subprocess console here
//Do other things
//Pipe another message to subprocess console here
如果这可以在不使用子流程的情况下以更简单的方式完成,那也很棒。
【问题讨论】:
-
问题是,虽然 subprocess.communicate() 在我第一次调用它时完全符合我的要求,但它会一直等到相关子进程终止。我需要在子进程的生命周期中进行多次通信,而communicate() 不允许这样做。
标签: communication subprocess python