Java實(shí)現(xiàn)的執(zhí)行python腳本工具類示例【使用jython.jar】
本文實(shí)例講述了Java實(shí)現(xiàn)的執(zhí)行python腳本工具類。分享給大家供大家參考,具體如下:
這里java中執(zhí)行python腳本工具類,需要使用jython.jar
java中執(zhí)行python腳本工具類,學(xué)習(xí)的時(shí)候?qū)懼妫?/p>
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(){} /** * 執(zhí)行某個(gè).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; } /** * 將參數(shù)賦給python程序執(zhí)行 * @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(); } /** * 將參數(shù)賦給python程序執(zhí)行,并獲取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點(diǎn)擊此處本站下載。
更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。
相關(guān)文章
python并行設(shè)計(jì)的實(shí)現(xiàn)
python中的并行設(shè)計(jì)可以顯著增強(qiáng)程序處理大量數(shù)據(jù)或復(fù)雜計(jì)算的速度,通過(guò)使用threading、multiprocessing和concurrent.futures等庫(kù),開(kāi)發(fā)者可以有效利用多核CPU的計(jì)算力,下面就來(lái)詳細(xì)的介紹一下2024-09-09Python使用Paramiko模塊編寫腳本進(jìn)行遠(yuǎn)程服務(wù)器操作
這篇文章主要介紹了Python使用Paramiko模塊編寫腳本進(jìn)行遠(yuǎn)程服務(wù)器操作的實(shí)例,通過(guò)Paramiko能夠方便地使用SSH服務(wù),需要的朋友可以參考下2016-05-05利用Python+Selenium破解春秋航空網(wǎng)滑塊驗(yàn)證碼的實(shí)戰(zhàn)過(guò)程
本文給大家介紹使用Python+Selenium破解春秋航空網(wǎng)滑塊驗(yàn)證碼的實(shí)戰(zhàn)過(guò)程,本文通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2021-08-08python人工智能算法之人工神經(jīng)網(wǎng)絡(luò)
這篇文章主要為大家介紹了python人工智能算法之人工神經(jīng)網(wǎng)絡(luò)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03Python圖像處理庫(kù)Pillow的簡(jiǎn)單實(shí)現(xiàn)
本文主要介紹了Python圖像處理庫(kù)Pillow的簡(jiǎn)單實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06Python實(shí)現(xiàn)給qq郵箱發(fā)送郵件的方法
這篇文章主要介紹了Python實(shí)現(xiàn)給qq郵箱發(fā)送郵件的方法,涉及Python郵件發(fā)送的相關(guān)技巧,需要的朋友可以參考下2015-05-05Python驗(yàn)證碼識(shí)別方式(使用pytesseract庫(kù))
這篇文章主要介紹了Python驗(yàn)證碼識(shí)別方式(使用pytesseract庫(kù)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-06-06