我正在使用java引擎来处理一些内容。
我想知道这会占用不必要的资源吗?
command = 'some command to run my jar file'
p = subprocess.Popen(command, stdout = subprocess.PIPE, stdin = subprocess.PIPE)
比较
output,err = p.communicate('some string that is passed to the java jar')
VS
p.stdin.write('some string that is passed to the java jar \n')
p.stdin.flush()
output = p.stdout.readline()
为问题提供一些背景信息。字符串是动态生成的,因此我不想打开和关闭java应用程序生成字符串的所有内容。
例如:
我的python引擎创建一个字符串
'Hi i am going home now
'传递给java引擎运行并获取输出。
接下来它产生'He is going home now
'并重复该过程。
显然java程序写入System.out.println(output);
答案 0 :(得分:1)
p.communicate()
将根据the subprocess docs等待进程终止。除非您计划在每次通信时终止并重新启动Java进程,否则您可以使用第二种方法(读/写)。