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学习笔记 下载
Feb 10 Python
python实现2048小游戏
Mar 30 Python
Python中functools模块的常用函数解析
Jun 30 Python
python Celery定时任务的示例
Mar 13 Python
详解python执行shell脚本创建用户及相关操作
Apr 11 Python
Django Channels 实现点对点实时聊天和消息推送功能
Jul 17 Python
Python字符串中添加、插入特定字符的方法
Sep 10 Python
Python 异常处理Ⅳ过程图解
Oct 18 Python
python Shapely使用指南详解
Feb 18 Python
python列表的逆序遍历实现
Apr 20 Python
Selenium+BeautifulSoup+json获取Script标签内的json数据
Dec 07 Python
python3.9.1环境安装的方法(图文)
Feb 02 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
农民C键的运用技巧
2020/03/04 星际争霸
php仿ZOL分页类代码
2008/10/02 PHP
codeigniter使用技巧批量插入数据实例方法分享
2013/12/31 PHP
PHP生成条形图的方法
2014/12/10 PHP
HTTP状态代码以及定义(解释)
2007/02/02 Javascript
Javascript生成全局唯一标识符(GUID,UUID)的方法
2016/02/27 Javascript
深入理解jQuery3.0的domManip函数
2016/09/01 Javascript
微信小程序 出现47001 data format error原因解决办法
2017/03/10 Javascript
jQuery阻止移动端遮罩层后页面滚动
2017/03/15 Javascript
手机端转换rem适应
2017/04/01 Javascript
angular实现spa单页面应用实例
2017/07/10 Javascript
基于vue2.x的电商图片放大镜插件的使用
2018/01/22 Javascript
Vue 页面跳转不用router-link的实现代码
2018/04/12 Javascript
JavaScript多态与封装实例分析
2018/07/27 Javascript
Node.js 使用axios读写influxDB的方法示例
2018/10/26 Javascript
JS代码触发事件代码实例
2020/01/02 Javascript
vue 页面回退mounted函数不执行的解决方案
2020/07/26 Javascript
python实现从字符串中找出字符1的位置以及个数的方法
2014/08/25 Python
Python实现的Google IP 可用性检测脚本
2015/04/23 Python
Python实现的归并排序算法示例
2017/11/21 Python
Python获取二维矩阵每列最大值的方法
2018/04/03 Python
Python绘制3D图形
2018/05/03 Python
利用Python正则表达式过滤敏感词的方法
2019/01/21 Python
Python3内置模块pprint让打印比print更美观详解
2019/06/02 Python
python程序中的线程操作 concurrent模块使用详解
2019/09/23 Python
jupyter notebook 使用过程中python莫名崩溃的原因及解决方式
2020/04/10 Python
CSS3 box-sizing属性
2009/04/17 HTML / CSS
HTML5高仿微信聊天、微信聊天表情|对话框|编辑器功能
2018/04/23 HTML / CSS
The North Face北面美国官网:美国著名户外品牌
2018/09/15 全球购物
有趣的流行文化T恤、马克杯、手机壳和更多:Look Human
2019/01/07 全球购物
日本亚马逊官方网站:Amazon.co.jp
2020/04/14 全球购物
小学雷锋月活动总结
2014/07/03 职场文书
党员三严三实对照检查材料
2014/10/13 职场文书
采购员岗位职责范本
2015/04/07 职场文书
Anaconda安装pytorch及配置PyCharm 2021环境
2021/06/04 Python
Vue的列表之渲染,排序,过滤详解
2022/02/24 Vue.js