日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

java代码调用python_java 直接调用python脚本,并传递参数代码实例|chu

發布時間:2024/10/8 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java代码调用python_java 直接调用python脚本,并传递参数代码实例|chu 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近陸續用python寫了很多文件處理腳本,雖然功能都比較簡單 ,但還是感覺到python對文件處理的簡潔高效 ,越發覺得java的語法相當的繁瑣~

接到個需求處理ftp數據接口 。所以想把python腳本也用上。java代碼定時掃描ftp數據倉庫 ,調用python腳本入庫。

直接采用java執行系統命令的方式

@Async public void readFileByPython(List filePaths) throws FileNotFoundException { URL localSrcUrl = AbstractReadFileLine.class.getResource(""); String localSrcPath = localSrcUrl.getPath(); localSrcPath = localSrcPath.substring(1, localSrcPath.length()); String pythonFile = localSrcPath + "PythonFileHandle.py"; int size = filePaths.size() + 2; String[] args = new String[size]; args[0] = "python"; args[1] = pythonFile; for(int i =0;i"); while((line = br.readLine())!=null){ System.out.println(line); System.out.println(""); int exitValue = proc.waitFor(); System.out.println("Process exitValue="+exitValue); } System.out.println("end"); } catch (Exception e){ e.printStackTrace(); } }

String[] args = new String[size];

args[0] = "python"; args[1] = pythonFile; args[0]表示要執行的是python 腳本 ,args[1] 腳本文件的全路徑

該方法調用 AbstractReadFileLine.class 文件路徑下的 PythonFileHandle.py 腳本 ,并傳入String數組類型的參數(需要處理的文件全路徑)

PythonFileHandle腳本接受java傳入的文件路徑參數(數組),解析并入庫

PythonFileHandle.py 代碼

import pymssql,time,sys reload(sys) sys.setdefaultencoding("utf-8") class MSSQL: def __init__(self,host,user,pwd,db): self.host = host self.user = user self.pwd = pwd self.db = db def __GetConnect(self): if not self.db: raise(NameError,"") self.conn = pymssql.connect(host=self.host,user=self.user,password=self.pwd,database=self.db,charset="utf8") cur = self.conn.cursor() if not cur: raise(NameError,"") else: return cur def ExecQuery(self,sql): cur = self.__GetConnect() cur.execute(sql) resList = cur.fetchall() # self.conn.close() return resList def ExecNonQuery(self,sql): cur = self.__GetConnect() cur.execute(sql) self.conn.commit() self.conn.close() def insertToCloseList(data ,ms): sql = "insert into t_isee_closelist_infos (WORK_ORDER_ID,CRM_Cdsc_Id,APPRAISE_TYPE,CRM_Accept_Date,latn_code,theme_row_id,TASK_EXECUTE_ROW_ID,CRM_Accept_REASON,ASSET_INTEG_ID) values ( '" temp ="' , '" sqlStr = temp.join(data) sql = sql + sqlStr + "')" ms.ExecNonQuery(sql) ms = MSSQL(host="172.30.0.186",user="sa",pwd="",db="test") fengefu = '$%$' for i in range(1, len(sys.argv)): read = open(sys.argv[i] ,'r') for line in read: line=line.strip('n') data = line.split(fengefu) insertToCloseList(data,ms) read.close

sys.argv[0] 存儲的是py文件自身的路徑,故接受參數從sys.argv[1]開始。

以上所述是小編給大家介紹的java調用python腳本傳遞參數詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對華域聯盟網站的支持!

總結

以上是生活随笔為你收集整理的java代码调用python_java 直接调用python脚本,并传递参数代码实例|chu的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。