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<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; 
    } 
 
}

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/10567.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论