我想获取命令的stdout和stderr以及返回代码。
有人可以指出我已经完成此操作的python函数吗?

我修改了在此站点上找到的功能,如下所示-但是我无法获取该命令的返回代码。在此代码段中,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

最佳答案

使用subprocess模块。 This section显示如何替换os.popen3调用。

10-06 06:47