最近陆续用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相关推荐

  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. linux下执行python脚本并传入参数_实现在Java中执行python代码或py脚本(可传参数)...

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

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

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

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

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

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

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

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

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

最新文章

  1. ​中国开启开源新纪元
  2. kazoo源码分析:Zookeeper客户端start概述
  3. MAC 升级到10.10(OS X Yosemite)下apache+php的配置问题
  4. linux su无效_如何处理Linux中su命令无反应的情况
  5. how to prepare reading club
  6. 最优乘车(Floyd)
  7. Angular应用里input字段后面的_ngcontent-hqi是什么含义
  8. [机器学习] 推荐系统之协同过滤算法(转)
  9. 南开大学计算机科学与技术考研真题,2016年南开大学计算机科学与技术考研考试科目-考研参考书-考研真题.pdf...
  10. Mysql数据库设计规范之四数据库操作行为规范
  11. 月结 sap_SAP运行物料账的常见错误
  12. 用freebsd搭建日志服务器
  13. HTML:在动态背景登陆界面中加入图片轮播
  14. miui12怎么自定义开机动画_MIUI12一天的体验,像换新机一样,感知超强!
  15. [翻译]XNA 3.0 Game Programming Recipes之six
  16. 关闭Windows Defender Service工具
  17. Ubuntu 安装及基本配置(显示、镜像源、网络配置)
  18. 分时均线最佳买点,分时均线操作法(转)
  19. 墨客IPFS子链技术交流
  20. 四人小组项目(对项目进行的修改与重写)

热门文章

  1. Vue项目报错记录解决Property or method “item“ is not defined on the instance
  2. redis 分布式锁 看门狗_漫谈分布式锁之Redis实现
  3. todo已完成任务_uTools 插件介绍 | 「todo」!打工人必备
  4. 批处理bat命令--获取当前盘符和当前目录和上级目录
  5. cmake / add_compile_options、CMAKE_CXX_FLAGS 和 add_definitions 区别
  6. 数据结构与算法 / 排序算法 / 堆排序
  7. push方法java_万字长文深入浅出谈Java数据类型系列之Stack
  8. 用 php写的条件语句-三种条件语句
  9. 路飞学城Python-Day9
  10. 初识python代码