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 相关文章推荐
web.py中调用文件夹内模板的方法
Aug 26 Python
Python计算已经过去多少个周末的方法
Jul 25 Python
Python基于回溯法子集树模板解决旅行商问题(TSP)实例
Sep 05 Python
使用python生成目录树
Mar 29 Python
Python可变参数*args和**kwargs用法实例小结
Apr 27 Python
Python测试网络连通性示例【基于ping】
Aug 03 Python
python学生信息管理系统(完整版)
Apr 05 Python
使用Python向DataFrame中指定位置添加一列或多列的方法
Jan 29 Python
python使用opencv对图像mask处理的方法
Jul 05 Python
python文件操作的简单方法总结
Nov 07 Python
详解Python遍历列表时删除元素的正确做法
Jan 07 Python
Python实现仓库管理系统
May 30 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
SONY ICF-SW55的电路分析
2021/03/02 无线电
自定义PHP分页函数
2006/10/09 PHP
《PHP边学边教》(01.开篇――准备工作)
2006/12/13 PHP
ThinkPHP函数详解之M方法和R方法
2015/09/10 PHP
微信接口生成带参数的二维码
2017/07/31 PHP
基于ThinkPHP5.0实现图片上传插件
2017/09/25 PHP
jquery api参考 visualjquery 中国线路 速度快
2007/11/30 Javascript
S2SH整合JQuery+Ajax实现登录验证功能实现代码
2013/01/30 Javascript
基于jQuery实现下拉框
2014/11/24 Javascript
PHP配置文件php.ini中打开错误报告的设置方法
2015/01/09 PHP
基于Javascript实现文件实时加载进度的方法
2016/10/12 Javascript
javascript删除html标签函数cIsHTML
2017/01/09 Javascript
js处理层级数据结构的方法小结
2017/01/17 Javascript
jQuery树控件zTree使用方法详解(一)
2017/02/28 Javascript
node.js实现登录注册页面
2017/04/08 Javascript
for循环 + setTimeout 结合一些示例(前端面试题)
2017/08/30 Javascript
详解JQuery基础动画操作
2019/04/12 jQuery
vue3.0中的双向数据绑定方法及优缺点
2019/08/01 Javascript
vue微信分享插件使用方法详解
2020/02/18 Javascript
vue实现抽屉弹窗效果
2020/11/15 Javascript
python实现文件分组复制到不同目录的例子
2014/06/04 Python
wxpython学习笔记(推荐查看)
2014/06/09 Python
python实现图书管理系统
2018/03/12 Python
python+numpy+matplotalib实现梯度下降法
2018/08/31 Python
Python可迭代对象操作示例
2019/05/07 Python
CSS3实现可关闭的下拉手风琴菜单效果
2015/08/31 HTML / CSS
使用HTML5的表单验证的简单示例
2015/09/09 HTML / CSS
腾讯技术类校园招聘笔试试题
2014/05/06 面试题
校园摄影活动策划方案
2014/02/05 职场文书
竞选文艺委员演讲稿
2014/04/28 职场文书
儿童生日会策划方案
2014/05/15 职场文书
经济贸易专业自荐信
2014/06/11 职场文书
保证书格式
2015/01/16 职场文书
2015年高考寄语或鼓励的话
2015/03/23 职场文书
教师节大会主持词
2015/07/06 职场文书
如何将numpy二维数组中的np.nan值替换为指定的值
2021/05/14 Python