从subprocess.check_output获取退出代码
我该如何获取subprocess.check_output
的退出代码呢?
我假设如果找到了符合我模式的文件,返回的代码应该是0
;如果没有找到符合模式的文件,返回的代码应该是非零的,对吧?
如果出现异常,我会收到一个非零的返回代码,这也是我预期的结果。
try:
output = subprocess.check_output(["staf", "server.com", "PROCESS", "START", "SHELL", "COMMAND", "ls *heapdump*", "WAIT", "RETURNSTDOUT", "STDERRTOSTDOUT"])
print result
except CalledProcessError as e:
print(e.returncode)
sys.exit(e.returncode)
1 个回答
4
就像文档里说的:
如果返回的代码不是零,就会抛出一个叫做CalledProcessError的错误。这个CalledProcessError对象会在returncode属性里包含返回的代码,而在output属性里包含任何输出信息。
所以,如果你没有进入except
块,就可以认为返回的是0。你已经在正确地处理非零返回代码了。