Java实现的执行python脚本工具类示例【使用jython.jar】


Posted in Python onMarch 29, 2018

本文实例讲述了Java实现的执行python脚本工具类。分享给大家供大家参考,具体如下:

这里java中执行python脚本工具类,需要使用jython.jar

java中执行python脚本工具类,学习的时候写着玩:

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.python.core.PyObject;
import org.python.util.PythonInterpreter;
public final class JythonUtil {
  private JythonUtil(){}
  /**
   * 执行某个.py文件
   * @param filePath
   * @throws IOException
   */
  public static void pythonExecute(String filePath) throws IOException{
    PythonInterpreter pin = new PythonInterpreter();
    InputStream is = new FileInputStream(filePath);
    pin.execfile(is);
    is.close();
  }
  /**
   * 获取python程序的变量值
   * @param filePath
   * @param ponames
   * @return
   * @throws IOException
   */
  public static List<PyObject> transP2JData(String filePath, String...ponames) throws IOException{
    PythonInterpreter pin = new PythonInterpreter();
    InputStream is = new FileInputStream(filePath);
    pin.execfile(is);
    is.close();
    List<PyObject> pos = new ArrayList<>();
    for (String poname : ponames) {
      PyObject po = pin.get(poname);
      pos.add(po);
    }
    return pos;
  }
  /**
   * 将参数赋给python程序执行
   * @param filePath
   * @param pomaps
   * @throws IOException
   */
  public static void transJ2PData(String filePath, Map<String, Object> pomaps) throws IOException {
    PythonInterpreter pin = new PythonInterpreter();
    InputStream is = new FileInputStream(filePath);
    for (String pomapkey : pomaps.keySet()) {
      pin.set(pomapkey, pomaps.get(pomapkey));
    }
    pin.execfile(is);
    is.close();
  }
  /**
   * 将参数赋给python程序执行,并获取python中的变量值
   * @param filePath
   * @param pomaps
   * @param ponames
   * @return
   * @throws IOException
   */
  public static List<PyObject> transJ2PData(String filePath, Map<String, Object> pomaps, String...ponames) throws IOException {
    PythonInterpreter pin = new PythonInterpreter();
    InputStream is = new FileInputStream(filePath);
    for (String pomapkey : pomaps.keySet()) {
      pin.set(pomapkey, pomaps.get(pomapkey));
    }
    pin.execfile(is);
    is.close();
    List<PyObject> pos = new ArrayList<>();
    for (String poname : ponames) {
      PyObject po = pin.get(poname);
      pos.add(po);
    }
    return pos;
  }
}

附:jython.jar点击此处本站下载

更多java相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

Python 相关文章推荐
python函数参数*args**kwargs用法实例
Dec 04 Python
跟老齐学Python之正规地说一句话
Sep 28 Python
python实现简单温度转换的方法
Mar 13 Python
python_opencv用线段画封闭矩形的实例
Dec 05 Python
Python线程池模块ThreadPoolExecutor用法分析
Dec 28 Python
Python分支语句与循环语句应用实例分析
May 07 Python
在Python中利用pickle保存变量的实例
Dec 30 Python
Python 列表的清空方式
Jan 13 Python
Python如何获取文件指定行的内容
May 27 Python
Python QTimer实现多线程及QSS应用过程解析
Jul 11 Python
Python操作Excel的学习笔记
Feb 18 Python
python实现MySQL指定表增量同步数据到clickhouse的脚本
Feb 26 Python
教你使用python画一朵花送女朋友
Mar 29 #Python
使用python生成目录树
Mar 29 #Python
python实现树形打印目录结构
Mar 29 #Python
Python基础教程之利用期物处理并发
Mar 29 #Python
Windows下安装Django框架的方法简明教程
Mar 28 #Python
Python实现的FTP通信客户端与服务器端功能示例
Mar 28 #Python
Python实现发送与接收邮件的方法详解
Mar 28 #Python
You might like
PHP 日,周,月点击排行统计
2012/01/11 PHP
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
2014/06/22 PHP
在线游戏大家来找茬II
2006/09/30 Javascript
jQuery遍历页面所有CheckBox查看是否被选中的方法
2015/04/14 Javascript
判断访客终端类型集锦
2015/06/05 Javascript
深入探讨javascript函数式编程
2015/10/11 Javascript
Bootstrap Modal对话框如何在关闭时触发事件
2016/12/02 Javascript
浅述节点的创建及常见功能的实现
2016/12/15 Javascript
vue-router 中router-view不能渲染的解决方法
2017/05/23 Javascript
网页中的图片查看器viewjs使用方法
2017/07/11 Javascript
vue自定义过滤器创建和使用方法详解
2017/11/06 Javascript
完美解决手机网页中输入框被输入法遮挡的问题
2017/12/19 Javascript
浅谈webpack 四个核心概念之Entry
2019/06/12 Javascript
详谈Object.defineProperty 及实现数据双向绑定
2020/07/18 Javascript
python里对list中的整数求平均并排序
2014/09/12 Python
Python logging管理不同级别log打印和存储实例
2018/01/19 Python
Empty test suite.(PyCharm程序运行错误的解决方法)
2018/11/30 Python
python pcm音频添加头转成Wav格式文件的方法
2019/01/09 Python
pyqt5 键盘监听按下enter 就登陆的实例
2019/06/25 Python
Python中的 is 和 == 以及字符串驻留机制详解
2019/06/28 Python
用Python获取摄像头并实时控制人脸的实现示例
2019/07/11 Python
Python实现某论坛自动签到功能
2019/08/20 Python
Anaconda3中的Jupyter notebook添加目录插件的实现
2020/05/18 Python
关于Theano和Tensorflow多GPU使用问题
2020/06/19 Python
详解anaconda离线安装pytorchGPU版
2020/09/08 Python
YesStyle美国/全球:购买亚洲时装、美容化妆品和生活百货
2017/01/16 全球购物
卡骆驰新加坡官网:Crocs新加坡
2018/06/12 全球购物
Internet体系结构
2014/12/21 面试题
党校培训自我鉴定
2014/02/01 职场文书
购房意向书
2014/04/01 职场文书
运动会标语
2014/06/21 职场文书
毕业生实习证明
2014/09/19 职场文书
2015年网络管理员工作总结
2015/05/21 职场文书
宿舍管理制度范本
2015/08/07 职场文书
班委竞选稿范文
2015/11/21 职场文书
Nginx如何获取自定义请求header头和URL参数详解
2022/07/23 Servers