2011-04-19 62 views
0

我喜歡從os模塊使用system()命令。有沒有辦法檢查命令是否給我回復?我有代碼來終止命令,如果它沒有在x秒內完成,但我想改進它來終止它,如果它沒有在x秒內回覆。檢查os.system()回覆

謝謝!

+0

你是什麼意思的'reply'? 'os.system()'返回的唯一值就是退出狀態... – 2011-04-19 21:01:06

+0

我在linux上運行..讓我說我鍵入os.system(「ls」)然後它列出所有的文件,這就是我的意思是回覆。 – Illusionist 2011-04-20 06:57:51

回答

3

這取決於您的意思與「答覆」。 os.system()返回命令的退出狀態(這是一個int,成功通常爲0)。如果這還不夠,請查看subprocess模塊。

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 
+0

謝謝,但我在linux上運行它 – Illusionist 2011-04-20 06:58:40

+0

然後你需要'os.WEXITSTATUS'來獲得退出狀態。 – Keith 2011-04-20 11:10:55