java中执行python脚本工具类,需要jython.jar

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 transP2JData(String filePath, String...ponames) throws IOException{

PythonInterpreter pin = new PythonInterpreter();

InputStream is = new FileInputStream(filePath);

pin.execfile(is);

is.close();

List 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 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 transJ2PData(String filePath, Map 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 pos = new ArrayList<>();

for (String poname : ponames) {

PyObject po = pin.get(poname);

pos.add(po);

}

return pos;

}

}

java运行python脚本_java中执行python脚本工具类详解相关推荐

  1. java多态的概念_java中多态概念、实现原理详解

    一.什么是多态? 1.多态的定义 指允许不同类的对象对同一消息做出响应.即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用) 2.多态的作用 消除类型之间的耦合关系 3.多 ...

  2. java构造器调用构造器_java中构造器内部调用构造器实例详解

    可能为一个类写了多个构造器,有时可能想在一个构造器里面调用另外一个构造器,为了减少代码的重复,可用this关键字做到这一点. public class Flower { private String ...

  3. java int byte数组_Java 中int与byte数组转换详解

    1.与运算符的理解(&): 参加运算的两个数据,按二进位进行"与"运算.如果两个相应的二进位都为1,则该位的结果值为1,否则为0.即 0&0=0:0&1=0 ...

  4. python soup.find_BeautifulSoup中find和find_all的使用详解

    爬虫利器BeautifulSoup中find和find_all的使用方法 二话不说,先上段HTML例子 index first item second item third item fourth i ...

  5. java break 在if 中使用_java中使用国密SM4算法详解

    前言 上次总结了一下加密算法的分类(加密算法有集中形式,各有什么不同?),现在我们用java语言实现一下SM4:无线局域网标准的分组数据算法.对称加密,密钥长度和分组长度均为128位. ps:我们既可 ...

  6. java.lang包有哪些类_Java中Lang包的工具类有哪些

    Java中Lang包的工具类有哪些 发布时间:2020-12-08 16:15:36 来源:亿速云 阅读:76 作者:Leah 今天就跟大家聊聊有关Java中Lang包的工具类有哪些,可能很多人都不太 ...

  7. java 执行js脚本_java中调用js脚本

    JDK1.6加入了对Script(JSR223)的支持.这是一个脚本框架,提供了让脚本语言来访问Java内部的方法.你可以在运行的时候找到脚本引擎,然后调用这个引擎去执行脚本.这个脚本API允许你为脚 ...

  8. php里面执行python,在php中执行python

    2011-08-25 美国人Jon写了个PiP,Python in Php项目,可以实现在php中调用python.Jon 79年出生在新泽西州,毕业于罗切斯特理工,曾于2002年合写 Profess ...

  9. java lua脚本_Java中使用LUA脚本语言

    Lua 是一个小巧的脚本语言.是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ieru ...

最新文章

  1. 通过docker-compose构建ghost博客(一)
  2. linux获取明文密码,linux下抓取内存中明文密码mimipenguin
  3. android之Fragment(官网资料翻译)三
  4. 20165310_获奖感想与Java阶段性学习总结
  5. 2017蓝桥杯省赛---java---B---1(购物单)
  6. LeetCode 748. 最短完整词
  7. C/C++ 远程开发 - NetBeans IDE 教程 -转
  8. ssh连接出现 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
  9. php集成环境安装包网盘,php环境集成安装包下载|php5环境集成安装包正式版_ - 极光下载站...
  10. cleaned_data debug django
  11. 银行间市场评论员文章词云绘制效果
  12. 道路交通标志设计要素和基本原则
  13. 每日五题 -202110
  14. 搭建DVWA出现错误:DVWA System error - config file not found.
  15. 社区团购热潮退却,谁是电商卖菜“接盘侠”?
  16. AI围棋学习之路一----棋盘和落子的类构建
  17. Talib技术因子详解(四)
  18. PDF如何合并为一个PDF?
  19. CVAT——计算机视觉标注工具
  20. 投诉申告:招行竟然如此对待零存整取客户?

热门文章

  1. MIPS汇编语言开发环境MARS
  2. 阿里云 ECS 云计算训练营 Day5:在线编程挑战
  3. 深度学习(机器学习)算法面试(一)
  4. electron 使用npm install安装 报错 electron@12.2.2 postinstall: node install.js
  5. com.fasterxml.jackson.databind.JsonMappingException: No suitable constructor
  6. 新手常见的5个Python错误
  7. Adobe XD 无法连接服务器
  8. c#split方法拆分为数据_C#实现字符串按多个字符采用Split方法分割 | 学步园
  9. 让人工智能有情感的秘诀!清华权威报告看透情感计算【附下载】
  10. RFC文档阅读器(RFC Reader)软件介绍