Python 2の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
リターンコードが0でも出力をしたいのですが? – MFB