Java实现的执行python脚本工具类示例【使用jython.jar】

 更新时间:2018年03月29日 11:16:16   作者:蛋疼的淡定哥  
这篇文章主要介绍了Java实现的执行python脚本工具类,结合实例形式分析了java使用jython.jar执行Python脚本的具体操作技巧,需要的朋友可以参考下

本文实例讲述了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并行设计的实现

    python中的并行设计可以显著增强程序处理大量数据或复杂计算的速度,通过使用threading、multiprocessing和concurrent.futures等库,开发者可以有效利用多核CPU的计算力,下面就来详细的介绍一下
    2024-09-09
  • Python使用Paramiko模块编写脚本进行远程服务器操作

    Python使用Paramiko模块编写脚本进行远程服务器操作

    这篇文章主要介绍了Python使用Paramiko模块编写脚本进行远程服务器操作的实例,通过Paramiko能够方便地使用SSH服务,需要的朋友可以参考下
    2016-05-05
  • 利用Python+Selenium破解春秋航空网滑块验证码的实战过程

    利用Python+Selenium破解春秋航空网滑块验证码的实战过程

    本文给大家介绍使用Python+Selenium破解春秋航空网滑块验证码的实战过程,本文通过图文实例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-08-08
  • Python实现选择排序

    Python实现选择排序

    选择法也算是入门的一种排序算法,比起冒泡法,它的方法巧妙了一些,它的出发点在于“挑”,每次挑选数组的最值,与前置元素换位,然后继续挑选剩余元素的最值并重复操作。个人认为选择排序的意义不在于排序本身,而在于挑选和置换的方法,对于一些问题很有帮助。
    2017-06-06
  • python人工智能算法之人工神经网络

    python人工智能算法之人工神经网络

    这篇文章主要为大家介绍了python人工智能算法之人工神经网络示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Python图像处理库Pillow的简单实现

    Python图像处理库Pillow的简单实现

    本文主要介绍了Python图像处理库Pillow的简单实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • Python实现给qq邮箱发送邮件的方法

    Python实现给qq邮箱发送邮件的方法

    这篇文章主要介绍了Python实现给qq邮箱发送邮件的方法,涉及Python邮件发送的相关技巧,需要的朋友可以参考下
    2015-05-05
  • Python中的tuple元组详细介绍

    Python中的tuple元组详细介绍

    这篇文章主要介绍了Python中的tuple元组详细介绍,本文讲解了Tuple 与 list 的相同之处、Tuple 不存在的方法、用 Tuple 的好处、Tuple 与 list 的转换等内容,需要的朋友可以参考下
    2015-02-02
  • Python验证码识别方式(使用pytesseract库)

    Python验证码识别方式(使用pytesseract库)

    这篇文章主要介绍了Python验证码识别方式(使用pytesseract库),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06
  • python 中random模块的常用方法总结

    python 中random模块的常用方法总结

    这篇文章主要介绍了python 中random的常用方法总结的相关资料,需要的朋友可以参考下
    2017-07-07

最新评论