使用Python中的"subprocess"调用Java应用程序并阅读Java app输出

Sne*_*ney 4 python java communication

读取从Python调用的Java应用程序的输出(即通过System.out.println)最好的方法是什么?

subprocess.Popen("java MyClass", shell=True)
Run Code Online (Sandbox Code Playgroud)

没有写和读文件?(使用Jython等不是一种可能的解决方案)

YOU*_*YOU 5

p1 = subprocess.Popen(["/usr/bin/java", "MyClass"], stdout=subprocess.PIPE)
print p1.stdout.read() 
Run Code Online (Sandbox Code Playgroud)

  • 使用Popen.communicate()执行阻塞读取,直到popened进程终止. (2认同)