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对象体系深入分析
Oct 28 Python
Python中的对象,方法,类,实例,函数用法分析
Jan 15 Python
Python中的rfind()方法使用详解
May 19 Python
Python装饰器基础详解
Mar 09 Python
[原创]pip和pygal的安装实例教程
Dec 07 Python
对Python实现简单的API接口实例讲解
Dec 10 Python
Django如何防止定时任务并发浅析
May 14 Python
python文件和文件夹复制函数
Feb 07 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
Mar 12 Python
解决python DataFrame 打印结果不换行问题
Apr 09 Python
python实现猜数游戏(保存游戏记录)
Jun 22 Python
移除Selenium中window.navigator.webdriver值
Jun 10 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
深入了解php4(1)--回到未来
2006/10/09 PHP
五款常用mysql slow log分析工具的比较分析
2011/05/22 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
2014/10/15 PHP
WebQQ最新登陆协议的用法
2014/12/22 PHP
腾讯CMEM的PHP扩展编译安装方法
2015/09/25 PHP
原生Js实现按的数据源均分时间点幻灯片效果(已封装)
2010/12/28 Javascript
jquery实现html页面 div 假分页有原理有代码
2014/09/06 Javascript
angularJS中router的使用指南
2015/02/09 Javascript
javascript实现验证IP地址等相关信息代码
2015/05/10 Javascript
Angular2 环境配置详细介绍
2016/09/21 Javascript
利用JS屏蔽页面中的Enter按键提交表单的方法
2016/11/25 Javascript
DataTables添加额外的查询参数和删除columns等无用参数实例
2017/07/04 Javascript
JavaScript 通过Ajax 动态加载CheckBox复选框
2017/08/31 Javascript
vue实现简单的日历效果
2020/09/24 Javascript
vue-cli 项目打包完成后运行文件路径报错问题
2019/07/19 Javascript
layui动态表头的实现代码
2019/08/22 Javascript
javascript利用canvas实现鼠标拖拽功能
2020/07/23 Javascript
Vue中keep-alive组件的深入理解
2020/08/23 Javascript
解决vant-UI库修改样式无效的问题
2020/11/03 Javascript
[00:36]TI7不朽珍藏III——斯温不朽展示
2017/07/15 DOTA
Python实现对字符串的加密解密方法示例
2017/04/29 Python
Python实现树的先序、中序、后序排序算法示例
2017/06/23 Python
Python实现的远程登录windows系统功能示例
2018/06/21 Python
Django Rest framework频率原理与限制
2019/07/26 Python
python3 常见解密加密算法实例分析【base64、MD5等】
2019/12/19 Python
python add_argument()用法解析
2020/01/29 Python
Django中F函数的使用示例代码详解
2020/07/06 Python
美国职棒大联盟的官方手套、球和头盔:Rawlings
2020/02/15 全球购物
Bath & Body Works阿联酋:在线购买沐浴和身体用品
2021/02/27 全球购物
金融专业推荐信
2013/11/14 职场文书
2014党员学习《反腐倡廉警示教育读本》思想汇报
2014/09/13 职场文书
2015年企业新年寄语
2014/12/08 职场文书
教师网络培训心得体会
2016/01/09 职场文书
python 命令行传参方法总结
2021/05/25 Python
Flask搭建一个API服务器的步骤
2021/05/28 Python
Apache POI操作批量导入MySQL数据库
2022/06/21 Servers