用java文件编译python程序并从fi读取python程序的输入

2024-09-30 20:23:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我将python代码存储在文件中,然后输入被传递输入文件. 在

    String rollno="13F127";
    String file="add";
    Process p = Runtime.getRuntime().exec("C:\\Python34\\python C:\\Users\\Raga\\Documents\\"+rollno+"\\"+file+".py < C:\\Users\\Raga\\Documents\\"+rollno+"\\input.txt");

当我使用jsp文件运行它时,需要很长的时间来加载和输出。请帮我拿这个。 我已经使用缓冲区和输入读取器读取了这个过程输出。在

^{pr2}$

请帮我拿这个!在


Tags: 文件代码pyaddstringprocessusersdocuments
1条回答
网友
1楼 · 发布于 2024-09-30 20:23:58

请勿将重定向(<;、>;或|)与exec一起使用!

在这里,重定向是由交互的shell来翻译的命令提示符)从标准输入中读取命令。然后,shell打开相关文件并使用重定向的标准流调用程序。在

exec只完成最后一部分,并将< ...input.text作为两个参数传递给Python程序。。。它不会处理它们,也会将它们传递给不处理它们的脚本!所以孩子试着用标准输入进行阅读,并一直在这里等待。在

所以你应该:

  • 使用ProcessBuilder,根据Runtimejavadoc现在是使用修改后的环境启动流程的首选方法
  • 将子进程的输入流重定向到文件

或多或少:

ProcessBuilder pb = new ProcessBuilder("C:\\Python34\\python",
    "C:\\Users\\Raga\\Documents\\"+rollno+"\\"+file+".py");
pb.redirectInput(Redirect.fromFile("C:\\Users\\Raga\\Documents\\"+rollno+"\\input.txt"));
Process p = pb.start();

相关问题 更多 >