这是我的代码:
from subprocess import check_output
print check_output('whoami', shell=True)
这很好用。
但是,如果我发出一个不存在的命令,它会说:
raise CalledProcessError(retcode, cmd, output=output)
CalledProcessError: Command 'test' returned non-zero exit status 1
如果你在shell上运行它,它会说:
'test' isnot recognized as an intenral or external command, operable program or batch file.
我怎样才能得到这个呢?
答案 0 :(得分:2)
正如您可以在subprocess.check_output
文档中看到的那样:
如果返回码非零,则会引发
CalledProcessError
。CalledProcessError
对象将在returncode属性中包含返回代码,并在输出属性中包含任何输出。
所以你可以这样做:
import subprocess
try:
print subprocess.check_output('test', shell=True)
except subprocess.CalledProcessError, e:
print e.output