首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Jython PythonInterpreter中的参数添加到"execfile“函数中

将Jython PythonInterpreter中的参数添加到"execfile“函数中
EN

Stack Overflow用户
提问于 2017-03-03 21:51:26
回答 1查看 3.3K关注 0票数 0

我有一个python脚本,我想用Java与Jython一起执行。Python脚本接受两个参数。如何向脚本中添加参数?

代码语言:javascript
复制
PythonInterpreter interpreter = new PythonInterpreter();
interpreter.execfile("C:/path/to/file/__main__.py");

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-03 22:38:40

execfile在本地命名空间中执行脚本。您可以在对sys.argv的先前调用中简单地将值赋值给exec

代码语言:javascript
复制
PythonInterpreter interpreter = new PythonInterpreter();
interpreter.exec(
    "import sys\n"
    +"sys.argv = ['Foo', 'Bar']");
interpreter.execfile("J:/test.py");

其中的脚本是:

代码语言:javascript
复制
import sys

print(sys.argv)

指纹:

代码语言:javascript
复制
['Foo', 'Bar']

我研究了您的评论的问题,看起来您需要在一个python.path对象中设置Properties,然后传递给PythonInterpreter.initialize。您还可以使用它传递参数:

代码语言:javascript
复制
Properties p = new Properties();
p.setProperty("python.path", "J:/WS/jython"); // Sets the module path

PythonInterpreter.initialize(System.getProperties(), p, new String[]{ "Foo", "Bar" });

PythonInterpreter interpreter = new PythonInterpreter();
interpreter.execfile("J:/WS/jython/main.py");
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42589053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档