如何获取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)
答案 0 :(得分:3)
正如documentation所说:
如果返回代码非零,则会引发CalledProcessError。该 CalledProcessError对象将在返回码中包含返回码 属性和输出属性中的任何输出。
所以,如果你没有在except
块中结束,你可以假设0被返回。你已经做了正确处理非零返回码的事情。