gpt4 book ai didi

java - 从 Java 调用 python 脚本时获取输出的问题

转载 作者:行者123 更新时间:2023-12-01 13:10:40 25 4
gpt4 key购买 nike

我有一个 Java 程序来调用 python 脚本。我用过exec方法。请找到下面的代码片段:

Python 程序(从维基百科收集部分文本)在单独运行时会给出正确的输出。当从 Java 调用时,我没有从 python 程序中获得完整的输出。

我使用ready()方法检查了BufferedReader对象的状态(如here所述,代码进入无限循环。

我认为其他人也遇到过类似的问题-https://stackoverflow.com/a/20661352/3409074

有人可以帮助我吗?

      public String enhanceData(String name,String entity) {
String s = null;
StringBuffer output = new StringBuffer();
try{
String command="python C://enhancer.py "+name+" "+entity;
Process p = Runtime.getRuntime().exec(command);
BufferedReader stdError=new BufferedReader(new InputStreamReader(p.getErrorStream()));
BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((s = stdInput.readLine()) != null) {

System.out.println(s);
output.append(s);
}

最佳答案

while 循环条件实际上已经读取了一行,因此您在循环中每次都会重复读取它。

while ((s = stdInput.readLine()) != null) {
//s=stdInput.readLine(); <- don't need this
System.out.println(s);
output.append(s);
}

/尼克

关于java - 从 Java 调用 python 脚本时获取输出的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22894477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com