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装饰器 免去调用父类构造函数的麻烦
May 18 Python
用实例解释Python中的继承和多态的概念
Apr 27 Python
python实现用于测试网站访问速率的方法
May 26 Python
Django小白教程之Django用户注册与登录
Apr 22 Python
用Python分析3天破10亿的《我不是药神》到底神在哪?
Jul 12 Python
django的model操作汇整详解
Jul 26 Python
python可视化text()函数使用详解
Feb 11 Python
django执行原始查询sql,并返回Dict字典例子
Apr 01 Python
详解Python中namedtuple的使用
Apr 27 Python
python 带时区的日期格式化操作
Oct 23 Python
pycharm进入时每次都是insert模式的解决方式
Feb 05 Python
python字符串的多行输出的实例详解
Jun 08 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 $_FILES中error返回值详解
2014/01/30 PHP
JavaScript 设计模式 富有表现力的Javascript(一)
2010/05/26 Javascript
jQuery之网页换肤实现代码
2011/04/30 Javascript
JS 实现BASE64_ENCODE和BASE64_DECODE(实例代码)
2013/11/13 Javascript
基于jquery异步传输json数据格式实例代码
2013/11/23 Javascript
判断javascript的数据类型(示例代码)
2013/12/11 Javascript
jQuery 2.0.3 源码分析之core(一)整体架构
2014/05/27 Javascript
Js为表单动态添加节点内容的方法
2015/02/10 Javascript
再谈JavaScript线程
2015/07/10 Javascript
jQuery实现可高亮显示的二级CSS菜单效果
2015/09/01 Javascript
浅谈js中的三种继承方式及其优缺点
2016/08/10 Javascript
javascript入门之string对象【新手必看】
2016/11/22 Javascript
jQuery列表检索功能实现代码
2017/07/17 jQuery
微信小程序使用template标签实现五星评分功能
2018/11/03 Javascript
Vue动态修改网页标题的方法及遇到问题
2019/06/09 Javascript
如何使用Node.js爬取任意网页资源并输出PDF文件到本地
2019/06/17 Javascript
ES6 class的应用实例分析
2019/06/27 Javascript
深入浅析ng-bootstrap 组件集中 tabset 组件的实现分析
2019/07/19 Javascript
element-ui tooltip修改背景颜色和箭头颜色的实现
2019/12/16 Javascript
node.js中 mysql 增删改查操作及async,await处理实例分析
2020/02/11 Javascript
基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能
2021/01/05 Vue.js
[01:56]无止竞 再出发——中国军团出征2017年DOTA2国际邀请赛
2017/07/05 DOTA
Pandas探索之高性能函数eval和query解析
2017/10/28 Python
Python中将dataframe转换为字典的实例
2018/04/13 Python
Python安装lz4-0.10.1遇到的坑
2018/05/20 Python
Python3 venv搭建轻量级虚拟环境的步骤(图文)
2019/08/09 Python
Python JSON编解码方式原理详解
2020/01/20 Python
如何导出python安装的所有模块名称和版本号到文件中
2020/06/05 Python
idealfit英国:世界领先的女性健身用品和运动衣物品牌
2017/11/25 全球购物
英国DVD和蓝光碟片购买网站:Zoom.co.uk(电影和电视)
2019/09/23 全球购物
越南母婴用品购物网站:Kids Plaza
2020/04/09 全球购物
实验室的标语
2014/06/20 职场文书
2016年社区中秋节活动总结
2016/04/05 职场文书
pytorch 如何使用float64训练
2021/05/24 Python
36个正则表达式(开发效率提高80%)
2021/11/17 Javascript
box-shadow单边阴影的实现
2023/05/21 HTML / CSS