zoukankan      html  css  js  c++  java
  • java中怎么调用python 脚本

    调用方法:

    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    
    public class PythonInvoke {
        public static void invokePy(String[] args) {
    
            try {
                Process process = Runtime.getRuntime().exec(args);
                //防止Python输出中文时乱码
                BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream(),"GBK"));
                String line = null;
                while ((line = in.readLine()) != null) {
                    System.out.println(line);
                }
                in.close();
                //java代码中的process.waitFor()返回值为0表示我们调用python脚本成功,
                //返回值为1表示调用python脚本失败,这和我们通常意义上见到的0与1定义正好相反
                int re = process.waitFor();
                System.out.println(re);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

    测试 Test():

    import com.cargosmart.alarm.utils.PythonInvoke;
    
    public class Test {
    
        public static void main(String[] args) {
            String []para  = new String[] {"python", "D://hello.py"};
            PythonInvoke.invokePy(para);
    
            System.out.println("-----有参------");
            String[] arguments = new String[] {"python", "D://hello1.py","lei","23"};
            PythonInvoke.invokePy(arguments);
         
        }
    
    }

    python文件

      hello.py

    def hello():
        print('Hello,Python')
     
    if __name__ == '__main__':
        hello()

     hello1.py

    import sys
     
    def hello(name,age):
        print('name:'+name)
        print('age:'+age)
     
    if __name__ == '__main__':
        hello(sys.argv[1], sys.argv[2])

    控制台结果:

    Hello,Python
    0
    -----有参------
    name:lei
    age:23
    0
  • 相关阅读:
    sklearn的preprocessing模块--数据预处理
    [系列转载]一.建模前的数据清洗与处理
    2.2 数学科学的数学之矩阵-行列式
    4)函数极限与连续函数
    6)导数
    java编写基于netty的RPC框架
    购买阿里云 实现内网 穿透 仅86元/年,而且
    OAuth 2.0
    java中JVM内存管理(1)
    java实现,使用opencv合成全景图,前端使用krpano展示
  • 原文地址:https://www.cnblogs.com/JonaLin/p/12091259.html
Copyright © 2011-2022 走看看