Python子进程 - 在循环中传递多个命令

时间:2017-11-22 18:47:13

标签: python c++ subprocess std

我正在尝试使用c++模块从sent2Vec p程序运行模型(python)的subprocess实现。 c++程序运行如下循环:

while(raw_input):
    print(perform_action(input))

这是因为它将一个巨大的模型加载到内存中,然后在将查询传递给它时使用它。所以,c ++输出如下所示:

Pre-computing vectors... done.
Query sentence?

query
0.603723 1 a1
0.306778 2 a2
0.262201 4 a3
0.198674 0 a4
0.131687 3 a5
0.121209 5 a6
0 6

Query sentence?

我想运行该程序,然后在需要时发送输入并读取输出。我知道每个查询生成的行数,所以如果我每次都必须读取整个输出,那就没问题了。

我尝试了以下内容:

process = Popen(cmd, stdin=PIPE, stdout=PIPE) process.stdin.write(query) process.stdout.readlines()

然而,这似乎陷入了一个循环。我查看了多个stackoverflow线程,其中大多数都是我尝试过的。我真的很感激任何帮助。

提前致谢!

1 个答案:

答案 0 :(得分:0)

出现了僵局。您需要准确计算写入providers: [ GooglePlus ] 的行数,然后才写入stdout