将参数从Java传递到Python时出错

2024-04-20 12:37:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我从Java调用一些Python模块。该模块使用numpy,所以我使用Runtime.getRuntime().exec()来调用Python。在爪哇,我在做这样的事情:

File python = new File("/usr/bin/python2.7");
File script = new File("/opt/my_custom_script.py");
String[] cmdArray = new String[] { python.toString(), script.toString(),
    "-i infile.txt", "-o outfile.txt" };
Process p = Runtime.getRuntime().exec(cmdArray);
p.waitFor();
if (p.exitValue() != 0) {
    throw new Exception(scriptName + " failed with exit code " + p.exitValue());
}

在Python中,到目前为止:

^{pr2}$

每次运行这个程序时,我都会不断地得到我所编的错误号,我的Python脚本不再运行了。直接调用Python(在bash中)没有问题。在

我的脱节在哪里?我该如何进行故障排除/调试?在


Tags: 模块numpytxtnewstringscriptjava事情
1条回答
网友
1楼 · 发布于 2024-04-20 12:37:03

您的问题是,您将两个选项传递给脚本,而不是getopt期望的四个选项。也就是说,-i infile.txt被视为一个选项,而不是getopt期望的两个选项-i和{},同样的事情发生在{}。您可以通过替换以下行来解决此问题:

String[] cmdArray = new String[] { python.toString(), script.toString(), "-i infile.txt", "-o outfile.txt" };

用这条线:

^{pr2}$

注意,现在-i和{}现在是独立的数组元素,-o和{}。在

相关问题 更多 >