• springboot项目中如何运行python相关代码


    运行python脚本并输出

    要让Python脚本返回数据给调用它的Java代码,你可以在Python脚本中使用打印或输出函数将结果输出到标准输出(stdout)中。

    以下是一个示例,在Python脚本中返回数据给Java代码:

    Python代码:

    result = "Hello from Python!"  # 要返回的数据
    print(result)  # 将结果打印到标准输出
    

    Java代码:

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    
    public class PythonScriptExecutor {
        public static void main(String[] args) {
            try {
                String pythonScriptPath = "path/to/your/script.py";  // 替换为你的Python脚本路径
    
                ProcessBuilder processBuilder = new ProcessBuilder("python", pythonScriptPath);
                Process process = processBuilder.start();
    
                BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
                String line;
                while ((line = reader.readLine()) != null) {
                    // 读取Python脚本的输出,并处理返回的数据
                    System.out.println("Python script output: " + line);
                    // ... 在此处进行进一步的处理
                }
    
                int exitCode = process.waitFor();
                System.out.println("Python script executed with exit code " + exitCode);
            } catch (IOException | InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
    

    在这个示例中,Python脚本通过print(result)语句将结果打印到标准输出。在Java代码中,我们通过读取process.getInputStream()获取Python脚本的输出,然后可以将返回的数据进行进一步的处理。

    请注意,Python脚本的输出将逐行读取,并以字符串的形式返回。你可以根据实际需求进行进一步的处理和解析。

    这是一种简单的方式,让Python脚本返回数据给Java代码。当然,你也可以使用其他的数据交换方式,如在文件中写入数据,让Java代码读取文件,或者使用Socket进行通信等,具体取决于你的需求和场景。

    如何输入参数

    如果想在执行Python脚本时传递参数,你可以在ProcessBuilder中设置参数。

    示例代码:

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    
    public class PythonScriptExecutor {
        public static void main(String[] args) {
            try {
                String pythonScriptPath = "path/to/your/script.py"; // 替换为你的Python脚本路径
                String param1 = "Hello";
                String param2 = "World";
    
                // 构建ProcessBuilder,并指定执行的Python解释器、脚本路径和参数
                ProcessBuilder processBuilder = new ProcessBuilder("python", pythonScriptPath, param1, param2);
                Process process = processBuilder.start();
    
                // 获取脚本的输出
                BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
                String line;
                while ((line = reader.readLine()) != null) {
                    System.out.println(line);
                }
    
                // 等待脚本执行完成
                int exitCode = process.waitFor();
                System.out.println("Python script executed with exit code " + exitCode);
            } catch (IOException | InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
    

    在以上示例中,param1和param2是要传递给Python脚本的参数。你可以根据需要添加或修改参数的数量。

    在Python脚本中,你可以使用sys.argv来接收命令行参数。sys.argv[0]是脚本的名称,sys.argv[1]是第一个参数,以此类推。以下是一个使用参数的Python脚本示例:

    import sys
    
    param1 = sys.argv[1]
    param2 = sys.argv[2]
    
    # 在脚本中处理参数
    print("Parameter 1:", param1)
    print("Parameter 2:", param2)
    

    通过这种方式,可以将参数传递给Python脚本并在脚本中进行处理。运行Java代码时,参数将被传递给Python脚本,并显示在Java控制台上。

  • 相关阅读:
    R语言ggplot2可视化相关系数图(correlation analysis):通过数据点的大小以及颜色(双色渐变填充)表征相关性的强度
    【React Hooks原理 - useRef】
    Maven是什么?手把手先创建个Maven项目
    CUDA、cudNN 、CUDAToolKit三者关系
    PyQt5快速开发与实战 7.1 信号与槽介绍
    搭建Android源码工作环境
    StarUML6.0.1使用
    XPath从入门到精通:基础和高级用法完整指南,附美团APP匹配示例
    【EI会议征稿】第八届先进能源科学与自动化国际研讨会(AESA 2024)
    逻辑漏洞(pikachu)
  • 原文地址:https://blog.csdn.net/weixin_45277161/article/details/139327506