我在 Python 2.* 中遇到了这个很好的替代getstatusoutput()
函数,它在 Unix 和 Windows 上同样适用。但是,我认为output
构建的方式有问题。它只返回输出的最后一行,但我不知道为什么。任何帮助都是极好的。
def getstatusoutput(cmd):
"""Return (status, output) of executing cmd in a shell."""
"""This new implementation should work on all platforms."""
import subprocess
pipe = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True, universal_newlines=True)
output = "".join(pipe.stdout.readlines())
sts = pipe.returncode
if sts is None: sts = 0
return sts, output