检查脚本是否成功运行?

时间:2013-07-12 10:10:23

标签: python return-value

我有在bash中运行命令的代码(每个bash命令运行一个函数python脚本),我希望检查脚本是否成功运行,因为有任何错误。这是代码:

    for command in command_list:
        if subprocess_cmd(command):
            print "success"
        else:
            print "fail"

def subprocess_cmd(command):
    process = subprocess.Popen(command.split(), stdout=subprocess.PIPE)
    proc_stdout = process.communicate()[0].strip()  

这总是打印失败,即使一切运行正常,我正在做的有意义吗? 我该怎么做?

编辑:answer是popen的returncode属性。

1 个答案:

答案 0 :(得分:1)

这是因为您的功能subprocess_cmm没有返回任何内容,因此默认返回None,这是 Falsy 值。

函数的默认返回值始终为None

>>> def func():
...     pass
>>> print func()
None

<强>更新

import shlex
for command in command_list:
   try:
       out = subprocess.check_output(shlex.split(command))
       print out
   except CalledProcessError:
       print "fail"