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目录操作之python遍历文件夹后将结果存储为xml
Jan 27 Python
在Django中管理Users和Permissions以及Groups的方法
Jul 23 Python
Python 搭建Web站点之Web服务器网关接口
Nov 06 Python
Python中分支语句与循环语句实例详解
Sep 13 Python
python 格式化输出百分号的方法
Jan 20 Python
超简单使用Python换脸实例
Mar 27 Python
python 缺失值处理的方法(Imputation)
Jul 02 Python
python Web flask 视图内容和模板实现代码
Aug 23 Python
python matplotlib.pyplot.plot()参数用法
Apr 14 Python
VSCode中autopep8无法运行问题解决方案(提示Error: Command failed,usage)
Mar 02 Python
pytest配置文件pytest.ini的详细使用
Apr 17 Python
Python实现8种常用抽样方法
Jun 27 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+jQuery+Ajax实现点赞效果的方法(附源码下载)
2020/07/21 PHP
详解PHP实现定时任务的五种方法
2016/07/25 PHP
PHP 5.6.11 访问SQL Server2008R2的几种情况详解
2016/08/08 PHP
javascript据option的value值快速设定初始的selected选项
2007/08/13 Javascript
javascript 特性检测并非浏览器检测
2010/01/15 Javascript
js判断样式className同时增加class或删除class
2013/01/30 Javascript
jquery单行文字向上滚动效果的实现代码
2014/09/05 Javascript
jquery实现仿JqueryUi可拖动的DIV实例
2015/07/31 Javascript
Javascript刷新窗口方法小结
2015/10/21 Javascript
JavaScript字符串常用的方法
2016/03/10 Javascript
jquery 仿锚点跳转到页面指定位置的实例
2017/02/14 Javascript
Vue.js实战之组件的进阶
2017/04/04 Javascript
JS与jQuery实现ListBox上移,下移,左移,右移操作功能示例
2018/05/31 jQuery
微信小程序进入广告实现代码实例
2019/09/19 Javascript
vue 动态给每个页面添加title、关键词和描述的方法
2020/08/28 Javascript
基于JS实现操作成功之后自动跳转页面
2020/09/25 Javascript
[05:39]2014DOTA2国际邀请赛 DK晋级胜者组专访战队国士无双
2014/07/14 DOTA
简单介绍Python的Tornado框架中的协程异步实现原理
2015/04/23 Python
python 获取网页编码方式实现代码
2017/03/11 Python
python使用Apriori算法进行关联性解析
2017/12/21 Python
Python面向对象编程之继承与多态详解
2018/01/16 Python
基于DataFrame筛选数据与loc的用法详解
2018/05/18 Python
windows下python 3.6.4安装配置图文教程
2018/08/21 Python
python2.7使用plotly绘制本地散点图和折线图
2019/04/02 Python
Python3实现汉语转换为汉语拼音
2019/07/08 Python
PyCharm 无法 import pandas 程序卡住的解决方式
2020/03/09 Python
Hotter Shoes美国官网:英国最受欢迎的舒适鞋
2018/08/02 全球购物
Myprotein丹麦官网:欧洲第一运动营养品牌
2019/04/15 全球购物
EMU Australia澳大利亚官网:澳大利亚本土雪地靴品牌
2019/07/24 全球购物
意大利奢侈品多品牌集合店:TheDoubleF
2019/08/24 全球购物
清洁工岗位职责
2014/01/29 职场文书
乡党委干部党的群众路线教育实践活动个人对照检查材料思想汇报
2014/10/01 职场文书
学习新党章心得体会2016
2016/01/15 职场文书
用Python简陋模拟n阶魔方
2021/04/17 Python
python爬虫之爬取笔趣阁小说
2021/04/22 Python
MYSQL常用函数介绍
2022/05/05 MySQL