栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java调用Python脚本传递参数进行数据分析

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java调用Python脚本传递参数进行数据分析

愉快的国庆假期结束啦,补一篇博客。
参考文档:

  1. java调用python脚本
  2. Java调用shell脚本

环境

  • Python 3.8.6 位于Linux服务器中
1.实现

param为调用脚本需要传入的参数,参数之间使用空格隔开进行组装。
Java代码:

public Integer executeShell(String param){

        String cmdStr = "bash /opt/apps/test.sh"+" "+param;

        byte[] buffer = new byte[1024];
        ByteArrayOutputStream outStream = new ByteArrayOutputStream();
        ByteArrayOutputStream outErrStream = new ByteArrayOutputStream();
        try {
            Process proc = Runtime.getRuntime().exec(cmdStr);
            InputStream errStream = proc.getErrorStream();
            InputStream stream = proc.getInputStream();
            // 流读取与写入
            int len = -1;
            while ((len = errStream.read(buffer)) != -1) {
                outErrStream.write(buffer, 0, len);
            }
            while ((len = stream.read(buffer)) != -1) {
                outStream.write(buffer, 0, len);
            }
            int resultCode = proc.waitFor();// 等待命令执行完成 
            return resultCode;
        } catch (Exception e) {
            e.printStackTrace();
            return  -1;
 }
2.改进

与上述参考资料中直接调用Python脚本不同,因为Linux服务器上的Python是通过MiniConda安装的,详见我之前的博客Linux服务器上部署conda。我需要先激活Conda虚拟环境才能调用Python脚本。

所以我通过Java调用shell脚本,在shell脚本中调用Python脚本。传递的参数使用$1、$2...来接收

改进后的Shell代码:

#!/bin/sh
# 激活虚拟环境
source /root/miniconda3/bin/activate Myenv
# 调用Python脚本进行数据分析
python /opt/apps/pythonapps/test.py "$1" "$2" "$3" "$4"

努力,进取,奋斗!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/306375.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号