我正在运行一个 Python 脚本,该脚本运行一个需要非确定性用户输入的 Java 类:
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()
,但没有显示输出。有没有办法显示没有回车的输入提示?
编辑
例如,如果 Java 类包含以下内容:
System.out.println("Message 1);
System.out.println("Message 2);
System.out.print("Enter a number:")
运行纯 Java 代码将显示所有 3 行。
通过 Python 运行的代码只会显示以下内容:
Message 1
Message 2