Sea*_*ean 6 python subprocess communication
我正在尝试将输入传递给在Python中作为子进程打开的程序.使用communic()做我想要的,但它只执行一次,然后在允许继续之前等待子进程终止.
是否存在类似于功能中的communic()的方法或模块,但是允许与子进程进行多次通信?
这是一个例子:
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
Run Code Online (Sandbox Code Playgroud)
如果这可以在不使用子进程的情况下以更简单的方式完成,那也会很棒.
你可以write到p.stdin(和flush每一次,以确保数据的实际发送)许多单独的时间,只要你想.只有当你想确保得到结果时才会出现问题(因为很难说服其他进程不缓冲它们的输出! - ),但是因为你甚至没有设置stdout=你的Popen课程,这显然不是问题所在您.(当它是一个问题,你真的需要击败其他过程的输出缓冲策略,pexpect-或wexpect在Windows上-是最好的解决办法-我建议他们非常,非常经常计算器,但没有网址现在就在手边,所以请自己搜索一下,如果与你的例子相反,你确实有这种需要).
| 归档时间: |
|
| 查看次数: |
2312 次 |
| 最近记录: |