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之总结参数的传递
Oct 10 Python
DJANGO-ALLAUTH社交用户系统的安装配置
Nov 18 Python
用Python制作在地图上模拟瘟疫扩散的Gif图
Mar 31 Python
Windows下PyMongo下载及安装教程
Apr 27 Python
Flask之flask-session的具体使用
Jul 26 Python
Python中创建二维数组
Oct 17 Python
python读写配置文件操作示例
Jul 03 Python
Python实现线性判别分析(LDA)的MATLAB方式
Dec 09 Python
pytorch中torch.max和Tensor.view函数用法详解
Jan 03 Python
Python使用进程Process模块管理资源
Mar 05 Python
Python钉钉报警及Zabbix集成钉钉报警的示例代码
Aug 17 Python
python爬虫爬取某网站视频的示例代码
Feb 20 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
Codeigniter实现处理用户登录验证后的URL跳转
2014/06/12 PHP
smarty模板引擎使用内建函数foreach循环取出所有数组值的方法
2015/01/22 PHP
thinkphp的dump函数无输出实例代码
2016/11/15 PHP
php四种定界符详解
2017/02/16 PHP
Javascript 强制类型转换函数
2009/05/17 Javascript
防止文件缓存的js代码
2013/01/10 Javascript
js中array的sort()方法使用介绍
2014/02/20 Javascript
js使用removeChild方法动态删除div元素
2014/08/01 Javascript
js判断滚动条是否已到页面最底部或顶部实例
2014/11/20 Javascript
jQuery.trim() 函数及trim()用法详解
2015/10/26 Javascript
js遍历map javaScript遍历map的简单实现
2016/08/26 Javascript
javascript加载xml 并解析各节点的值(实现方法)
2016/10/12 Javascript
JS定时器用法分析【时钟与菜单中的应用】
2016/12/21 Javascript
JS实现图片放大镜插件详解
2017/11/06 Javascript
JavaScript命名空间模式实例详解
2019/06/20 Javascript
vue搜索页开发实例代码详解(热门搜索,历史搜索,淘宝接口演示)
2020/04/11 Javascript
three.js 利用uv和ThreeBSP制作一个快递柜功能
2020/08/18 Javascript
python发送邮件示例(支持中文邮件标题)
2014/02/16 Python
python中dir函数用法分析
2015/04/17 Python
python生成器generator用法实例分析
2015/06/04 Python
通过Python 获取Android设备信息的轻量级框架
2017/12/18 Python
Python实现k-means算法
2018/02/23 Python
Python+OpenCV实现车牌字符分割和识别
2018/03/31 Python
Python空间数据处理之GDAL读写遥感图像
2019/08/01 Python
Python爬虫实现vip电影下载的示例代码
2020/04/20 Python
Python2及Python3如何实现兼容切换
2020/09/01 Python
HTML5 source标签:媒介元素定义媒介资源
2018/01/29 HTML / CSS
上海期货面试题
2014/01/31 面试题
二年级数学教学反思
2014/01/21 职场文书
护理专业大学生自我推荐信
2014/01/25 职场文书
超市开业庆典策划方案
2014/05/14 职场文书
校园元旦活动总结
2014/07/09 职场文书
爱国主题班会教案
2015/08/14 职场文书
python中requests库+xpath+lxml简单使用
2021/04/29 Python
微信小程序用户授权最佳实践指南
2021/05/08 Javascript
win11电脑关机鼠标灯还亮怎么解决? win11关机后鼠标灯还亮解决方法
2023/01/09 数码科技