java中执行python脚本工具类
2018-07-20 来源:open-open
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<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;
}
}
标签: 脚本
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
下一篇:C++截取字符串子串实现
最新资讯
热门推荐