gpt4 book ai didi

python subprocess.check_output 在某些命令上返回 CalledProcessError

转载 作者:太空宇宙 更新时间:2023-11-04 10:16:49 24 4
gpt4 key购买 nike

>>> import subprocess
>>> subprocess.check_output("smartctl -d ata -a /dev/sda", shell=True)
"output of above command prints normally"
>>> subprocess.check_output("smartctl -d ata -a /dev/sdb", shell=True)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/subprocess.py", line 544, in check_output
raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command 'smartctl -d ata -a /dev/sdb' returned non-zero exit status 64

任何人都可以向我解释为什么上面的 sda 命令工作正常但 sdb 返回错误吗? sdc 也有效,为了记录。另外,我知道使用 shell=True 的风险。我正在学习python并在编写测试脚本时遇到了这个问题。

最佳答案

你可以很容易地看出 sdb 出了什么问题:

try:
subprocess.check_output("smartctl -d ata -a /dev/sdb", shell=True)
except subprocess.CalledProcessError, e:
print e.output

关于python subprocess.check_output 在某些命令上返回 CalledProcessError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34886321/

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