我想获取命令的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
调用。