检查os.system()回复

时间:2011-04-19 20:58:14

标签: python linux

我喜欢使用os模块中的system()命令。有没有办法检查命令是否给我回复?我有代码来终止命令,如果它没有在x秒内完成,但我想改进它以终止它,如果它没有在x秒内回复。

谢谢!

2 个答案:

答案 0 :(得分:3)

这取决于您对“回复”的意思。 os.system()返回命令的退出状态(为int,通常为0表示成功)。如果这还不够,请查看subprocess模块。

答案 1 :(得分:1)

您没有说出您正在运行的操作系统。唉,它与Windows和Linux不同。这是我的所作所为:

import os

try:
    WEXITSTATUS = os.WEXITSTATUS
except AttributeError: # running on Windows
    def WEXITSTATUS(arg):
        return arg
    os.environ["HOME"] = os.environ["USERPROFILE"]


if WEXITSTATUS(os.system(cmd)) != 0:
    pass # bad return value
else:
    pass # good return value