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 相关文章推荐
教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
Jul 04 Python
深入理解python函数递归和生成器
Jun 06 Python
python、java等哪一门编程语言适合人工智能?
Nov 13 Python
浅谈Tensorflow模型的保存与恢复加载
Apr 26 Python
python计算两个数的百分比方法
Jun 29 Python
mac PyCharm添加Python解释器及添加package路径的方法
Oct 29 Python
浅谈python下含中文字符串正则表达式的编码问题
Dec 07 Python
解决Pycharm调用Turtle时 窗口一闪而过的问题
Feb 16 Python
详解如何用TensorFlow训练和识别/分类自定义图片
Aug 05 Python
Python中*args和**kwargs的区别详解
Sep 17 Python
Matplotlib 绘制饼图解决文字重叠的方法
Jul 24 Python
Python实现AES加密,解密的两种方法
Oct 03 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 Class SoapClient not found解决方法
2018/01/20 PHP
多浏览器支持的右下角浮动窗口
2010/04/01 Javascript
让ie运行js时提示允许阻止内容运行的解决方法
2010/10/24 Javascript
Jquery常用技巧收集整理篇
2010/11/14 Javascript
一些实用的jQuery代码片段收集
2011/07/12 Javascript
图片上传判断及预览脚本的效果实例
2013/08/07 Javascript
jquery获取radio值(单选组radio)
2014/10/16 Javascript
jQuery实现的分子运动小球碰撞效果
2016/01/27 Javascript
JavaScript的设计模式经典之建造者模式
2016/02/24 Javascript
Adapter适配器模式在JavaScript设计模式编程中的运用分析
2016/05/18 Javascript
js实现炫酷的左右轮播图
2017/01/18 Javascript
js遍历获取表格内数据的方法(必看)
2017/04/06 Javascript
AngularJS中table表格基本操作示例
2017/10/10 Javascript
laravel5.3 vue 实现收藏夹功能实例详解
2018/01/21 Javascript
fullpage.js最后一屏滚动方式
2018/02/06 Javascript
vue-cli3.0 特性解读
2018/04/22 Javascript
vue改变对象或数组时的刷新机制的方法总结
2019/04/24 Javascript
Vue项目从webpack3.x升级webpack4不完全指南
2019/04/28 Javascript
[02:21]DOTA2英雄基础教程 蝙蝠骑士
2013/12/16 DOTA
pymssql ntext字段调用问题解决方法
2008/12/17 Python
详解如何用OpenCV + Python 实现人脸识别
2017/10/20 Python
pandas 实现将重复表格去重,并重新转换为表格的方法
2018/04/18 Python
django的ORM操作 增加和查询
2019/07/26 Python
python 字典有序并写入json文件过程解析
2019/09/30 Python
CSS3 选择器 伪类选择器介绍
2012/01/21 HTML / CSS
荷兰牛仔裤网上商店:Jeans Centre
2018/04/03 全球购物
斯洛伐克最大的婴儿食品和用品网上商店:Feedo.sk
2020/12/21 全球购物
年会主持词结束语
2014/03/27 职场文书
学雷锋活动总结范文
2014/04/25 职场文书
2014年个人思想工作总结
2014/11/27 职场文书
表扬信范文
2015/05/04 职场文书
博士论文答辩开场白
2015/06/01 职场文书
2016年感恩节寄语
2015/12/07 职场文书
yyds什么意思?90后已经听不懂00后讲话了……
2022/02/03 杂记
Win11开始菜单添加休眠选项
2022/04/19 数码科技
MySQL存储过程及语法详解
2022/08/05 MySQL