java运行python脚本_java中执行python脚本工具类详解
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脚本工具类详解相关推荐
- java多态的概念_java中多态概念、实现原理详解
一.什么是多态? 1.多态的定义 指允许不同类的对象对同一消息做出响应.即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用) 2.多态的作用 消除类型之间的耦合关系 3.多 ...
- java构造器调用构造器_java中构造器内部调用构造器实例详解
可能为一个类写了多个构造器,有时可能想在一个构造器里面调用另外一个构造器,为了减少代码的重复,可用this关键字做到这一点. public class Flower { private String ...
- java int byte数组_Java 中int与byte数组转换详解
1.与运算符的理解(&): 参加运算的两个数据,按二进位进行"与"运算.如果两个相应的二进位都为1,则该位的结果值为1,否则为0.即 0&0=0:0&1=0 ...
- python soup.find_BeautifulSoup中find和find_all的使用详解
爬虫利器BeautifulSoup中find和find_all的使用方法 二话不说,先上段HTML例子 index first item second item third item fourth i ...
- java break 在if 中使用_java中使用国密SM4算法详解
前言 上次总结了一下加密算法的分类(加密算法有集中形式,各有什么不同?),现在我们用java语言实现一下SM4:无线局域网标准的分组数据算法.对称加密,密钥长度和分组长度均为128位. ps:我们既可 ...
- java.lang包有哪些类_Java中Lang包的工具类有哪些
Java中Lang包的工具类有哪些 发布时间:2020-12-08 16:15:36 来源:亿速云 阅读:76 作者:Leah 今天就跟大家聊聊有关Java中Lang包的工具类有哪些,可能很多人都不太 ...
- java 执行js脚本_java中调用js脚本
JDK1.6加入了对Script(JSR223)的支持.这是一个脚本框架,提供了让脚本语言来访问Java内部的方法.你可以在运行的时候找到脚本引擎,然后调用这个引擎去执行脚本.这个脚本API允许你为脚 ...
- php里面执行python,在php中执行python
2011-08-25 美国人Jon写了个PiP,Python in Php项目,可以实现在php中调用python.Jon 79年出生在新泽西州,毕业于罗切斯特理工,曾于2002年合写 Profess ...
- java lua脚本_Java中使用LUA脚本语言
Lua 是一个小巧的脚本语言.是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ieru ...
最新文章
- 通过docker-compose构建ghost博客(一)
- linux获取明文密码,linux下抓取内存中明文密码mimipenguin
- android之Fragment(官网资料翻译)三
- 20165310_获奖感想与Java阶段性学习总结
- 2017蓝桥杯省赛---java---B---1(购物单)
- LeetCode 748. 最短完整词
- C/C++ 远程开发 - NetBeans IDE 教程 -转
- ssh连接出现 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
- php集成环境安装包网盘,php环境集成安装包下载|php5环境集成安装包正式版_ - 极光下载站...
- cleaned_data debug django
- 银行间市场评论员文章词云绘制效果
- 道路交通标志设计要素和基本原则
- 每日五题 -202110
- 搭建DVWA出现错误:DVWA System error - config file not found.
- 社区团购热潮退却,谁是电商卖菜“接盘侠”?
- AI围棋学习之路一----棋盘和落子的类构建
- Talib技术因子详解(四)
- PDF如何合并为一个PDF?
- CVAT——计算机视觉标注工具
- 投诉申告:招行竟然如此对待零存整取客户?
热门文章
- MIPS汇编语言开发环境MARS
- 阿里云 ECS 云计算训练营 Day5:在线编程挑战
- 深度学习(机器学习)算法面试(一)
- electron 使用npm install安装 报错 electron@12.2.2 postinstall: node install.js
- com.fasterxml.jackson.databind.JsonMappingException: No suitable constructor
- 新手常见的5个Python错误
- Adobe XD 无法连接服务器
- c#split方法拆分为数据_C#实现字符串按多个字符采用Split方法分割 | 学步园
- 让人工智能有情感的秘诀!清华权威报告看透情感计算【附下载】
- RFC文档阅读器(RFC Reader)软件介绍