gpt4 book ai didi

Python 错误 : subprocess. CalledProcessError:命令返回非零退出状态 1

转载 作者:行者123 更新时间:2023-11-30 22:58:28 31 4
gpt4 key购买 nike

我需要计算 python 脚本中 shell 命令输出的行数。

如果有输出,此函数可以正常工作,但如果输出为空,则会给出错误输出中所解释的错误。
我试图使用 if 来避免这种情况语句,以防命令的输出为 None ,但这没有帮助。

#!/usr/bin/python
import subprocess

lines_counter=0
func="nova list | grep Shutdown "
data=subprocess.check_output(func, shell=True)
if data is True:
for line in data.splitlines():
lines_counter +=1
print lines_counter

错误输出:

data=subprocess.check_output(func, shell=True)
File "/usr/lib/python2.7/subprocess.py", line 573, in check_output
raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command 'nova list | grep Shutdown ' returned non-zero exit status 1

最佳答案

如果您正在运行的 grep 命令不匹配任何内容,则会以退出状态 1 退出。该非零退出代码会导致 check_output 引发异常(这就是其名称中“check”部分的含义)。

如果您不希望失败的匹配引发异常,请考虑使用 subprocess.getoutput 而不是 check_output。或者您可以更改命令以避免非零退出代码:

func = "nova list | grep Shutdown || true"

关于Python 错误 : subprocess. CalledProcessError:命令返回非零退出状态 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36186630/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com