我在Python 2橫跨這個偉大replacment來抓getstatusoutput()
功能*,它同樣適用於Unix和Windows。不過,我認爲output
的構建方式有問題。它只返回輸出的最後一行,但我不明白爲什麼。任何幫助都是極好的。Python的getstatusoutput更換不返回完整的輸出
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
爲什麼不在try塊中使用'subprocess.check_call'?你可以在'except'部分得到返回碼(如果它不是零)。 – wim 2012-04-18 02:50:54
如果我想要輸出,即使返回代碼爲0,該怎麼辦? – MFB 2012-04-18 03:00:43