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常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)
Aug 25 Python
跟老齐学Python之集合(set)
Sep 24 Python
python实现自动登录人人网并访问最近来访者实例
Sep 26 Python
探索Python3.4中新引入的asyncio模块
Apr 08 Python
Python3 操作符重载方法示例
Nov 23 Python
python 借助numpy保存数据为csv格式的实现方法
Jul 04 Python
Python Opencv任意形状目标检测并绘制框图
Jul 23 Python
获取Pytorch中间某一层权重或者特征的例子
Aug 17 Python
Pytorch模型转onnx模型实例
Jan 15 Python
python3 deque 双向队列创建与使用方法分析
Mar 24 Python
python 自定义异常和主动抛出异常(raise)的操作
Dec 11 Python
python 通过使用Yolact训练数据集
Apr 06 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 巧用数组降低程序的时间复杂度
2010/01/01 PHP
PHP面向对象程序设计之多态性的应用示例
2018/12/19 PHP
对laravel in 查询的使用方法详解
2019/10/09 PHP
swoole锁的机制代码实例讲解
2021/03/04 PHP
麦鸡的TAB切换功能结合了javascript和css
2007/12/17 Javascript
Javascript this指针
2009/07/30 Javascript
jQuery AJAX 调用WebService实现代码
2010/03/24 Javascript
jQuery实现列表自动循环滚动鼠标悬停时停止滚动
2013/09/06 Javascript
js使用for循环与innerHTML获取选中tr下td值
2014/09/26 Javascript
深入解析Javascript闭包的功能及实现方法
2016/07/10 Javascript
js数组去重的hash方法
2016/12/22 Javascript
使用JavaScriptCore实现OC和JS交互详解
2017/03/28 Javascript
Angualrjs 表单验证的两种方式(失去焦点验证和点击提交验证)
2017/05/09 Javascript
Angularjs cookie 操作实例详解
2017/09/27 Javascript
vue实现验证码输入框组件
2017/12/14 Javascript
Nodejs让异步变成同步的方法
2019/03/02 NodeJs
微信小程序如何使用云开发
2019/05/17 Javascript
nodejs 递归拷贝、读取目录下所有文件和目录
2019/07/18 NodeJs
Js on及addEventListener原理用法区别解析
2020/07/11 Javascript
Python3实现的字典遍历操作详解
2018/04/18 Python
python爬取哈尔滨天气信息
2018/07/14 Python
对django2.0 关联表的必填on_delete参数的含义解析
2019/08/09 Python
使用python os模块复制文件到指定文件夹的方法
2019/08/22 Python
关于Theano和Tensorflow多GPU使用问题
2020/06/19 Python
CSS3 函数技巧 用css 实现js实现的事情(clac Counters Tooltip)
2017/08/15 HTML / CSS
Tod’s英国官方网站:意大利奢华手工制作手袋和鞋履
2019/03/15 全球购物
年度考核评语
2014/01/19 职场文书
监察建议书范文
2014/03/12 职场文书
党课培训主持词
2014/04/01 职场文书
《穷人》教学反思
2014/04/08 职场文书
广告学专业毕业生自荐信
2014/05/28 职场文书
党员争先创优承诺书
2015/01/20 职场文书
公司奖励通知
2015/04/21 职场文书
村党总支部公开承诺书2016
2016/03/25 职场文书
英语版自我评价,35句话轻松搞定
2019/10/08 职场文书
详解Html5项目适配系统深色模式方案总结
2021/04/14 HTML / CSS