如何将参数从java传递给python脚本?

问题描述:

我是蟒蛇,我想在我的java程序中执行一个python文件。我已经阅读了许多关于如何将参数传递给python文件中的函数。但是,这条巨蟒计划旨在利用参数从命令行,像“./a.py的abc.txt”,我已经试过像如何将参数从java传递给python脚本?

interp.execfile("d:/a.py abc.txt"); 

一些方法,这种方法“在线程异常‘失败的主要’ IO错误:(2,“找不到文件 - d:\ a.py的abc.txt ..... “

interp.exec("sys.arg[1]='abc.txt'"); 
interp.execfile("d:/a.py"); 

此方法 失败” 在线程异常 “主要” 回溯(最近呼叫最后):

文件 “串” 1行,在模块

AttributeError的: '反射场公共org.python.core.PyObject O' 对象没有属性 'ARG'

所有的这些方法失败。

+0

它是如何不工作?你有任何错误?多一点信息在这里会有帮助。 – pypat 2013-05-06 12:23:02

+0

你如何使用**参数?我想你的问题(你根本没有描述)是他们在你的Python应用程序中缺少的? – Torxed 2013-05-06 12:26:35

+0

@Torxed这个python程序在命令行中输入一个文件名并将其转换为另一种文件类型。像TXT到PDF。我所要求的是如何将文件名从调用此脚本的java程序传递给python脚本。 – 2013-05-06 12:37:42

您是否尝试过...

Runtime r = Runtime.getRuntime(); 
Process p = r.exec("./a.py abc.txt"); 
+0

感谢您的回答,:)。 – 2013-05-06 13:05:26

+0

现在不是ProcessBuilder是执行外部程序的首选方式吗? – CodeChimp 2013-05-06 13:12:28