如何在Python中捕获subprocess.check_call的返回代码

问题描述 投票:0回答:1

我有一个脚本正在执行5个不同的Shell命令,并且我正在使用subprocess.check_call()执行它们。问题是我似乎无法弄清楚如何正确捕获和分析返回码。

根据文档The CalledProcessError object will have the return code in the returncode attribute.,但我不知道如何访问它。如果我说

rc = subprocess.check_call("command that fails")
print(rc)

告诉我

subprocess.CalledProcessError:命令'失败的命令'返回非零退出状态1

但是我不知道如何仅捕获1的整数输出。

我想这一定是可行的?

python subprocess
1个回答
0
投票

subprocess.check_call方法失败时将引发CalledProcessError。从文档:

subprocess.check_call(args, *, stdin=None, stdout=None, stderr=None, shell=False, cwd=None, timeout=None, **other_popen_kwargs)

运行带有参数的命令。等待命令完成。如果返回码为零然后返回,否则引发CalledProcessError。CalledProcessError对象将在returncode属性。

您可能只希望subprocess.run或使用try / except块来处理CalledProcessError

© www.soinside.com 2019 - 2024. All rights reserved.