gpt4 book ai didi

python - 如何解释 Python commands.getstatusoutput() 中的状态代码

转载 作者:太空狗 更新时间:2023-10-29 21:19:08 25 4
gpt4 key购买 nike

related question 中,我问在哪里可以找到 C 函数“wait”的文档。这是试图找出 commands.getstatusoutput() 模块的返回码。 Stackoverflow 通过了,但文档没有帮助。这是令我困惑的地方:

#!/usr/bin/python
import commands
goodcommand = 'ls /'
badcommand = 'ls /fail'
status, output = commands.getstatusoutput(goodcommand)
print('Good command reported status of %s' % status)
status, output = commands.getstatusoutput(badcommand)
print('Bad command reported status of %s' % status)

在 OS X (Leopard) 上运行时,我得到以下输出:(与文档匹配。)

$ python waitest.py 
Good command reported status of 0
Bad command reported status of 256

在 OS X 上,执行“ls/fail ; echo $?”得到以下输出:

$ ls /fail ; echo $?
ls: /fail: No such file or directory
1

在 Linux (Ubuntu Hardy) 上运行时,我得到以下输出:

$ python waitest.py 
Good command reported status of 0
Bad command reported status of 512

在 Ubuntu 上,执行“ls/fail”得到 2:

$ ls /fail ; echo $?
ls: cannot access /fail: No such file or directory
2

所以 Python 似乎将状态代码乘以 256。嗯?这在某处记录了吗?

最佳答案

os 模块中有一组函数 (os.WIFCONTINUED, os.WIFSTOPPED, os.WTERMSIG, os.WCOREDUMP, os.WIFEXITED, os.WEXITSTATUS, os.WIFSIGNALED, os.WSTOPSIG),对应于 wait(2) 中的宏手动的。您应该使用它们来解释状态代码。

例如,要获取退出代码,您应该使用 os.WEXITSTATUS(status)

一个更好的主意是切换到 subprocess 模块。

关于python - 如何解释 Python commands.getstatusoutput() 中的状态代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1535672/

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