我有一个 java 程序,我必须从 python 运行,获取输出并将结果存储在 3 个变量中(如果它按预期工作,应该打印 3 个值,每个值在不同的行上)。
这是我正在使用的代码:
stdout1 = subprocess.getoutput("java -jar test.jar" + " -r " + path1)
x, y, z = stdout1.splitlines()[:]
如果 test.jar 程序没有找到 path1,它将输出一条消息来检查路径。
有没有办法检查程序是否正确执行,然后才存储输出?
x, y, z = stdout1.splitlines()[:]
请您参考如下方法:
你应该使用
import subprocess
try:
stdout1 = subprocess.check_output("java -jar test.jar" + " -r " + path1, shell=True)
except subprocess.CalledProcessError as e:
# handle error
https://docs.python.org/2/library/subprocess.html#subprocess.check_output
