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基础教程之元组操作使用详解
Mar 25 Python
Python ORM框架SQLAlchemy学习笔记之关系映射实例
Jun 10 Python
粗略分析Python中的内存泄漏
Apr 23 Python
Python实现堆排序的方法详解
May 03 Python
Python中struct模块对字节流/二进制流的操作教程
Jan 21 Python
Tensorflow之Saver的用法详解
Apr 23 Python
对Python中list的倒序索引和切片实例讲解
Nov 15 Python
python程序控制NAO机器人行走
Apr 29 Python
Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法
Mar 20 Python
jupyter notebook 多环境conda kernel配置方式
Apr 10 Python
如何解决安装python3.6.1失败
Jul 01 Python
利用Python网络爬虫爬取各大音乐评论的代码
Apr 13 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 简单数组排序实现代码
2009/08/05 PHP
利用PHP扩展vld查看PHP opcode操作步骤
2013/03/04 PHP
php数组合并的二种方法
2014/03/21 PHP
PHP的AES加密算法完整实例
2016/07/20 PHP
thinkphp5框架API token身份验证功能示例
2019/05/21 PHP
laravel框架实现敏感词汇过滤功能示例
2020/02/15 PHP
Javascript学习笔记5 类和对象
2010/01/11 Javascript
javascript学习笔记(十七) 检测浏览器插件代码
2012/06/20 Javascript
对于this和$(this)的个人理解
2013/09/08 Javascript
js获取当前地址 JS获取当前URL的示例代码
2014/02/26 Javascript
javascript中不提供sleep功能如何实现这个功能
2014/05/27 Javascript
jQuery 2.0.3 源码分析之core(一)整体架构
2014/05/27 Javascript
javascript实现回车键提交表单方法总结
2015/01/10 Javascript
js初始化验证实例详解
2016/11/26 Javascript
浅谈webpack对样式的处理
2018/01/05 Javascript
React Native 自定义下拉刷新上拉加载的列表的示例
2018/03/01 Javascript
前后端常见的几种鉴权方式(小结)
2019/08/04 Javascript
[00:36]我的中国心——Serenity vs Fnatic
2018/08/21 DOTA
python处理csv数据的方法
2015/03/11 Python
Python数据结构与算法之图结构(Graph)实例分析
2017/09/05 Python
Pycharm 设置默认头的图文教程
2019/01/17 Python
cProfile Python性能分析工具使用详解
2019/07/22 Python
python如果快速判断数字奇数偶数
2019/11/13 Python
详解python os.path.exists判断文件或文件夹是否存在
2020/11/16 Python
css3 按钮样式简单可扩展创建
2013/03/18 HTML / CSS
美国领先的礼品卡网站:GiftCards.com
2016/11/02 全球购物
马来西亚在线药房:RoyalePharma
2019/12/01 全球购物
在校生钳工实习自我鉴定
2013/09/19 职场文书
测量员岗位职责
2015/02/14 职场文书
2016七夕情人节广告语
2016/01/28 职场文书
实用求职信模板范文
2019/05/13 职场文书
教师实习自我鉴定总结
2019/08/20 职场文书
深入探讨opencv图像矫正算法实战
2021/05/21 Python
「偶像大师 MILLION LIVE!」七尾百合子手办开订
2022/03/21 日漫
一行Python命令实现批量加水印
2022/04/07 Python
生命的关键成分来自太空?陨石说是的
2022/04/29 数码科技