从subprocess.check_output获取退出代码

时间:2014-05-22 14:41:36

标签: python

如何获取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 个答案:

答案 0 :(得分:3)

正如documentation所说:

  

如果返回代码非零,则会引发CalledProcessError。该   CalledProcessError对象将在返回码中包含返回码   属性和输出属性中的任何输出。

所以,如果你没有在except块中结束,你可以假设0被返回。你已经做了正确处理非零返回码的事情。