最近陆续用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

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脚本,并传递参数代码实例相关推荐

  1. java执行python脚本并传递参数_从Java执行Python脚本存在参数传递问题

    我试图从Java执行一个python脚本.当我手动执行python脚本时,它正常工作.当我从Java执行它时,它的参数有问题:事实上,python的响应是"Usage"错误,就像我 ...

  2. 调用python脚本并传递参数json格式_使用 Python 处理 JSON 格式的数据

    如果你不希望从头开始创造一种数据格式来存放数据,JSON 是一个很好的选择.如果你对 Python 有所了解,就更加事半功倍了.下面就来介绍一下如何使用 Python 处理 JSON 数据. JSON ...

  3. python从文件中读取数据_使用Python脚本从文件读取数据代码实例

    这篇文章主要介绍了使用Python脚本从文件读取数据代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 最近自学Python的进度比较慢,工作之 ...

  4. python参数传递方法_深入理解python中函数传递参数是值传递还是引用传递

    python 的 深入理解python中函数传递参数是值传递还是引用传递 目前网络上大部分博客的结论都是这样的: Python不允许程序员选择采用传值还是传 引用.Python参数传递采用的肯定是&q ...

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

    最近陆续用python写了很多文件处理脚本,虽然功能都比较简单 ,但还是感觉到python对文件处理的简洁高效 ,越发觉得java的语法相当的繁琐~ 接到个需求处理ftp数据接口 .所以想把pytho ...

  6. linux下执行python脚本并传入参数_实现在Java中执行python代码或py脚本(可传参数)...

    写在前面 最近用Java写服务端程序时,遇到这样一个需求:需要把用python写的机器学习算法部署到服务器上,然后Java执行py脚本,并且取得算法执行的结果.在网上找了很久,有些跑不通,有些是基于w ...

  7. 使用C#调用Python脚本,带参数列表

    static void Main(string[] args){string[] strArr;//参数列表string sArguments = @"Pythons.py";// ...

  8. 【Groovy】Groovy 脚本调用 ( 命令行执行 Groovy 脚本并传入参数 | 获取 Groovy 脚本执行参数 )

    文章目录 前言 一. 命令行执行 Groovy 脚本并传入参数 二.获取 Groovy 脚本执行参数 前言 在 Groovy 脚本 , Groovy 类 , Java 类中 , 可以调用 Groovy ...

  9. 包教包会!7段代码带你玩转Python条件语句(附代码)

    来源:大数据 本文约5200字,建议阅读10分钟. 本文介绍了Python条件语句常用的7段代码. [ 导 读 ]条件语句通过一个或多个布尔表达式的执行结果(真值或假值)决定下一步的执行方向.所谓布尔 ...

  10. 两行代码完成特征工程-基于Python的特征自动化选择代码(提供下载)

    本文介绍一个特征选择神器:特征选择器是用于减少机器学习数据集的维数的工具,可以傻瓜式地进行特征选择,两行代码即可搞定!! 来源:Will Koehrsen 代码整理及注释翻译:黄海广 代码和数据下载地 ...

最新文章

  1. 从命令行修改你的Mac DNS(主要在在线恢复mac系统不能上网时候使用)
  2. 清空oracle表数据 外键,oracle清空所有表数据
  3. c++构造函数成员初始化中赋值和初始化列表两种方式的区别
  4. python的结构_Python结构的选择,python,之
  5. Spark之Master主备切换机制原理
  6. Spring Security AuthenticationManagerBuilder
  7. 「懒惰的美德」我用 python 写了个自动生成给文档生成索引的脚本
  8. CodeUI Test:UIMap录制文件分析一
  9. 集合的洗牌,排序,拆分以及常用遍历方法
  10. 你的核心竞争力真的是技术么?
  11. Firefox和Chrome浏览器导出书签
  12. centos7 Samba服务安装和配置
  13. 财务报表分析-损益表,资产负债表,现金流,回报率
  14. Tensorflow2.0 之 SSD 网络结构
  15. HDU 3713 Double Maze
  16. C语言_链式栈结构+二进制计算器
  17. STL之lower_bound,upper_bound二分查找函数 结构体
  18. BlackShadow 黑客入侵以色列托管公司并勒索客户
  19. 比较好看的背景html,一个超炫的Canvas背景,做网页背景挺好看
  20. jquery php验证手机号码,使用jQuery如何实现手机号正则验证输入

热门文章

  1. 网络协议 18 - CDN:家门口的小卖铺
  2. git优点缺点(简单介绍)
  3. 学习python菜鸟教程
  4. tomcat 7下spring 4.x mvc集成websocket以及sockjs完全参考指南(含nginx/https支持)
  5. 算法系列15天速成——第五天 五大经典查找【中】
  6. MSDN MTBETA
  7. Asp.Net Core 第03局:Startup
  8. 解决ASP.NET中Redis 每小时6000次访问请求的问题
  9. Android源码分析之Builder模式
  10. dubbo 学习资料