0
阅读是System.out.print Java的我正在运行,需要不确定性用户输入一个Java类的Python脚本:通过Python子
import sys
import subprocess
from subprocess import Popen, PIPE
p = Popen("java myclass", shell=True, stdout=subprocess.PIPE)
while True:
inline = p.stdout.readline()
if not inline:
break
sys.stdout.write(inline)
sys.stdout.flush()
当使用System.out.print()
显示输出,正确显示输出。但是,用System.out.print()
打印用户输入提示时,不会显示输出。我试着将p.stdout.readline()
切换到p.stdout.read()
,但是没有输出显示。有没有办法显示没有回车的输入提示?
EDIT
例如,如果Java类包含下列:
System.out.println("Message 1);
System.out.println("Message 2);
System.out.print("Enter a number:")
运行纯Java代码将显示所有的3行。
通过Python的运行将仅显示以下的代码:
Message 1
Message 2
可以使用'strip'以除去回车:'直列= p.stdout.readline()条() ' – 2013-04-25 20:26:54
我很困惑。所有System.out打印都是通过STDOUT完成的,所以阅读它应该没有什么不同。但是,System.in正在从STDIN读取数据,因此您必须使用适当的键组合键写出“用户输入”以指示输入已停止。 – CodeChimp 2013-04-25 20:28:18