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实现2014火车票查询代码分享
Jan 10 Python
浅谈Python类的__getitem__和__setitem__特殊方法
Dec 25 Python
让Python更加充分的使用Sqlite3
Dec 11 Python
用pyqt5 给按钮设置图标和css样式的方法
Jun 24 Python
python3实现带多张图片、附件的邮件发送
Aug 10 Python
python系列 文件操作的代码
Oct 06 Python
python @propert装饰器使用方法原理解析
Dec 25 Python
如何将PySpark导入Python的放实现(2种)
Apr 26 Python
python安装读取grib库总结(推荐)
Jun 24 Python
Python机器学习三大件之一numpy
May 10 Python
Python必备技巧之字符数据操作详解
Mar 23 Python
python中pycryto实现数据加密
Apr 29 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实现的返回数据格式化类实例
2014/09/22 PHP
Symfony2框架创建项目与模板设置实例详解
2016/03/17 PHP
用javascript动态调整iframe高度的代码
2007/04/10 Javascript
Asp.net下利用Jquery Ajax实现用户注册检测(验证用户名是否存)
2010/09/12 Javascript
Jquery插件easyUi表单验证提交(示例代码)
2013/12/30 Javascript
js锁屏解屏通过对$.ajax进行封装实现
2014/07/31 Javascript
实例讲解javascript注册事件处理函数
2016/01/09 Javascript
jquery实现全选、不选、反选的两种方法
2016/09/06 Javascript
JS实现禁止鼠标右键的功能
2016/10/15 Javascript
jQuery实现的分页功能示例
2017/01/22 Javascript
Node.js调试技术总结分享
2017/03/12 Javascript
Ext JS 实现建议词模糊动态搜索功能
2017/05/13 Javascript
5 种JavaScript编码规范
2018/01/30 Javascript
vue 自定义全局方法,在组件里面的使用介绍
2018/02/28 Javascript
three.js实现炫酷的全景3D重力感应
2018/12/30 Javascript
JS实现可用滑块滑动的缓动图代码
2019/09/01 Javascript
layui默认选中table的CheckBox复选框方法
2019/09/19 Javascript
用Angular实现一个扫雷的游戏示例
2020/05/15 Javascript
Python可跨平台实现获取按键的方法
2015/03/05 Python
python中getaddrinfo()基本用法实例分析
2015/06/28 Python
python对离散变量的one-hot编码方法
2018/07/11 Python
python实现两个经纬度点之间的距离和方位角的方法
2019/07/05 Python
Python调用百度根据经纬度查询地址的示例代码
2019/07/07 Python
Python input函数使用实例解析
2019/11/22 Python
pytorch 实现打印模型的参数值
2019/12/30 Python
css3进阶之less实现星空动画的示例代码
2019/09/10 HTML / CSS
Html5元素及基本语法详解
2016/08/02 HTML / CSS
澳大利亚婴儿礼品公司:The Baby Gift Company
2018/11/04 全球购物
在线课程:Skillshare
2019/04/02 全球购物
家长会邀请书
2014/01/25 职场文书
学生会宣传部部长竞选演讲稿
2014/04/25 职场文书
学习党的群众路线实践活动思想汇报
2014/09/12 职场文书
2015年学校办公室工作总结
2015/05/26 职场文书
旅游投诉信范文
2015/07/02 职场文书
企业安全生产规章制度
2015/08/06 职场文书
PHP 技巧 * SVG 保存为图片(分享图生成)
2021/04/02 PHP