2011-10-26 42 views
1

我想獲得一個命令的stdout和stderr以及返回碼。 有人可以指向我已經完成了這一點的python函數嗎?popen3和返回碼

我修改了一個我在本網站上找到的函數,如下所示 - 但我無法獲取該命令的返回碼。在這段代碼中,sts似乎總是爲0.

def Getstatusoutput(cmd): 
    """Return (status, output) of executing cmd in a shell.""" 

    import sys 
    mswindows = (sys.platform == "win32") 

    import os 
    if not mswindows: 
     cmd = '{ ' + cmd + '; }' 

    fi,fo,fe=os.popen3(cmd) 
    textOut = fo.read() 
    textErr = fe.read() 
    sts = fo.close() 
    if sts is None: sts = 0 
    if textOut[-1:] == '\n': textOut = textOut[:-1] 
    return sts, textOut, textErr 

回答