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抓取京东图书评论数据
Aug 31 Python
Python+Wordpress制作小说站
Apr 14 Python
python 查找文件名包含指定字符串的方法
Jun 05 Python
python3.5绘制随机漫步图
Aug 27 Python
python 输入一个数n,求n个数求乘或求和的实例
Nov 13 Python
对python 中class与变量的使用方法详解
Jun 26 Python
使用OpenCV实现仿射变换—平移功能
Aug 29 Python
解决python replace函数替换无效问题
Jan 18 Python
Python @property装饰器原理解析
Jan 22 Python
python实现图像拼接
Mar 05 Python
Python依赖包迁移到断网环境操作
Jul 13 Python
Python实现异步IO的示例
Nov 05 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 动态生成静态HTML页面示例代码
2014/01/15 PHP
2014过年倒计时示例
2014/01/31 PHP
PHP图片等比例缩放生成缩略图函数分享
2014/06/10 PHP
PHP实现简单的模板引擎功能示例
2017/09/02 PHP
阿里云的WindowsServer2016上部署php+apache
2018/07/17 PHP
Laravel (Lumen) 解决JWT-Auth刷新token的问题
2019/10/24 PHP
jQeury淡入淡出需要注意的问题
2010/09/08 Javascript
纯JS实现根据CSS的class选择DOM
2014/03/22 Javascript
js中的事件捕捉模型与冒泡模型实例分析
2015/01/10 Javascript
JavaScript获取网页中第一个图片id的方法
2015/04/03 Javascript
javascript实现鼠标移到Image上方时显示文字效果的方法
2015/08/07 Javascript
javascript日期格式化方法汇总
2015/10/04 Javascript
AngularJS 模型详细介绍及实例代码
2016/07/27 Javascript
zepto与jquery的区别及zepto的不同使用8条小结
2016/07/28 Javascript
原生js实现回复评论功能
2017/01/18 Javascript
详解如何去除vue项目中的#——History模式
2017/10/13 Javascript
微信小程序踩坑记录之解决tabBar.list[3].selectedIconPath大小超过40kb
2018/07/04 Javascript
vue下history模式刷新后404错误解决方法
2018/08/18 Javascript
详解vue-cli3多环境打包配置
2019/03/28 Javascript
node express使用HTML模板的方法示例
2019/08/22 Javascript
vue实现图片懒加载的方法分析
2020/02/05 Javascript
JavaScript实现图片伪异步上传过程解析
2020/04/10 Javascript
原生js+canvas实现贪吃蛇效果
2020/08/02 Javascript
[50:58]2018DOTA2亚洲邀请赛3月29日 小组赛A组OpTic VS Newbee
2018/03/30 DOTA
在python中利用KNN实现对iris进行分类的方法
2018/12/11 Python
如何使用Python进行OCR识别图片中的文字
2019/04/01 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
2019/08/28 Python
HTML5拖拽功能实现的拼图游戏
2018/07/31 HTML / CSS
美术教学感言
2014/02/22 职场文书
《狼》教学反思
2014/03/02 职场文书
经验交流材料格式
2014/12/30 职场文书
大学毕业生个人总结
2015/02/28 职场文书
2019年教师节:送给所有老师的祝福语
2019/09/05 职场文书
创业计划书之溜冰场
2019/10/25 职场文书
python通配符之glob模块的使用详解
2021/04/24 Python
Python标准库之typing的用法(类型标注)
2021/06/02 Python