springboot调用python脚本的基础写法及函数封装
在Spring Boot中调用Python脚本的基础写法涉及到Java的ProcessBuilder
类和Runtime
类。以下是一个简单的函数封装,用于执行Python脚本并获取输出:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class PythonScriptExecutor {
public String executePythonScript(String scriptPath, String... args) {
ProcessBuilder processBuilder = new ProcessBuilder();
processBuilder.command("python", scriptPath, args);
processBuilder.redirectErrorStream(true);
try {
Process process = processBuilder.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
StringBuilder output = new StringBuilder();
while ((line = reader.readLine()) != null) {
output.append(line).append("\n");
}
int exitVal = process.waitFor();
if (exitVal == 0) {
return output.toString();
} else {
// 处理错误输出
return "Execution failed with exit code: " + exitVal;
}
} catch (IOException | InterruptedException e) {
Thread.currentThread().interrupt();
// 处理异常
e.printStackTrace();
return "Execution failed: " + e.getMessage();
}
}
}
使用该函数,你可以通过指定Python脚本的路径和任何需要的参数来执行它。函数将返回脚本的输出或在发生错误时返回一个错误消息。
请注意,这个示例假设你的系统上已经安装了Python,并且系统变量中python
命令可以正常运行。如果Python的路径不在系统变量中,你需要在ProcessBuilder
的command
方法中指定Python的完整路径。
评论已关闭