python 调用控制台并获取返回结果_Java调用Python脚本并获取返回值
在Java程序中有時需要調(diào)用Python的程序,這時可以使用一般的PyFunction來調(diào)用python的函數(shù)并獲得返回值,但是采用這種方法有可能出現(xiàn)一些莫名其妙的錯誤,比如ImportError。在這種情況下可以采用另一種方法:使用Java的Runtime,像在命令行直接調(diào)用python腳本那樣調(diào)用python程序。此時可以通過文件作為腳本參數(shù)來傳遞Python程序所需要的參數(shù),并從腳本的輸入輸出流來獲取本來該打印在控制臺的結(jié)果。
先準(zhǔn)備好一個python文件:
def get_path(filename):
y_t = np.loadtxt(filename)
peolpex = int(y_t[0][0])
peolpey = int(y_t[0][1])
firex = int(y_t[1][0])
firey = int(y_t[1][1])
answer = getQ(peolpex, peolpey, firex, firey)
return answer
if __name__ == "__main__":
filename = sys.argv[1]
# print(filename)
# root = Tk()
# canvas = Canvas(root, bg="white")
# canvas.pack()
# colors = ['red', 'orange', 'green', 'black','yellow','white','pink']
result = get_path(filename)
# with open(filename, 'w') as f:
# f.write(result)
print result
對應(yīng)的Java程序如下:
String result = "";
try {
Process process = Runtime.getRuntime().exec("python /home/jia/fireevacuation/my.py " + filename);
// process.waitFor();
InputStreamReader ir = new InputStreamReader(process.getInputStream());
LineNumberReader input = new LineNumberReader(ir);
result = input.readLine();
input.close();
ir.close();
// process.waitFor();
} catch (IOException e) {
logger.error("調(diào)用python腳本并讀取結(jié)果時出錯:" + e.getMessage());
}
return result;
(轉(zhuǎn))java調(diào)用python腳本
這篇博客旨在吐血分享今天遇到的java調(diào)用python腳本遇到的坑,折騰了3個多小時終于可以跑通了,代碼超級短,但網(wǎng)上的好多資料都是抄來抄去的,很少有能夠直接跑通的,尤其是針對你的python文件中用 ...
通過Java調(diào)用Python腳本
在進行開發(fā)的過程中,偶爾會遇到需要使用Java調(diào)用Python腳本的時候,畢竟Python在諸如爬蟲,以及科學(xué)計算等方面具有天然的優(yōu)勢.最近在工作中遇到需要在Java程序中調(diào)用已經(jīng)寫好的Python程 ...
java調(diào)用python腳本并向python腳本傳遞參數(shù)
1.安裝Eclipse 先安裝jdk,再安裝Eclipse,成功后開始建立py_java項目,在這個項目的存儲目錄SRC下建立test包,在test包中New-Class,新建MyDemo類,建好完成 ...
自己遇到的ajax調(diào)用ashx文件無法獲取返回值的一種情況
無法獲取返回值的ashx文件大致如下: public void ProcessRequest (HttpContext context) { context.Response.ContentType ...
[Java/Python] java調(diào)用python腳本問題記錄
Java調(diào)用Python的的兩種方式 1.Runtime private static String call_python(String input_argv) { String python_py ...
Java調(diào)用Python腳本
今天遇到Java調(diào)用一個Python腳本的問題,糾結(jié)了大半天,遇到各種問題.網(wǎng)上搜索的大部分都是用jython,但是我想要調(diào)用的python腳本里有import urllib,這個urllib也不是什 ...
java 調(diào)用 python 腳本
有時候在java項目里,需要執(zhí)行Python腳本以下幾種方式: 1.直接執(zhí)行Python腳本代碼 引用 org.python包 創(chuàng)建一個 python解釋器,貌似這種方式不可以導(dǎo)入第三方庫,模塊... ...
Java調(diào)用Python腳本工具類
[本文出自天外歸云的博客園] 在網(wǎng)上查了很多方法都不成功,在google上搜到一篇文章,做了一些小修改,能夠處理中文輸出.提取一個運行python腳本的Java工具類如下: package com.a ...
微信小程序前端調(diào)用后臺方法并獲取返回值
wxml代碼
總結(jié)
以上是生活随笔為你收集整理的python 调用控制台并获取返回结果_Java调用Python脚本并获取返回值的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python爬虫数据库_python数据
- 下一篇: 堆和栈的概念和区别 python_堆和栈