检查os.system()的返回值
我喜欢使用os模块里的system()命令。有没有办法检查这个命令是否有回复呢?我已经写了代码,可以在命令运行超过x秒后终止它,但我想改进一下,如果它在x秒内没有回复,也能终止它。
谢谢!
2 个回答
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
4
这要看你说的“回复”是什么意思。os.system()
会返回命令的退出状态(这是一个整数,通常成功时返回0)。如果这还不够,你可以看看 subprocess 模块。