我喜欢从os模块使用system()命令。有没有办法检查命令是否给我回复?我有代码来终止命令,如果它没有在x秒内完成,但我想改进它来终止它,如果它没有在x秒内回复。检查os.system()回复
谢谢!
我喜欢从os模块使用system()命令。有没有办法检查命令是否给我回复?我有代码来终止命令,如果它没有在x秒内完成,但我想改进它来终止它,如果它没有在x秒内回复。检查os.system()回复
谢谢!
这取决于您的意思与“答复”。 os.system()
返回命令的退出状态(这是一个int,成功通常为0)。如果这还不够,请查看subprocess模块。
你没有说你在哪个操作系统上运行。唉,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
谢谢,但我在linux上运行它 – Illusionist 2011-04-20 06:58:40
然后你需要'os.WEXITSTATUS'来获得退出状态。 – Keith 2011-04-20 11:10:55
你是什么意思的'reply'? 'os.system()'返回的唯一值就是退出状态... – 2011-04-19 21:01:06
我在linux上运行..让我说我键入os.system(“ls”)然后它列出所有的文件,这就是我的意思是回复。 – Illusionist 2011-04-20 06:57:51