私の目標は、ファイルを実行し、そのステータス(成功した場合は0)を返し、その出力も返すことです。私はosモジュールを使ってシミュレーションを実行している状態にしています。バッチファイルの実行の返信
status= os.system("file")
出力を持つためにサブプロセスモジュールを使用しています。
output=subprocess.check_output("file")
私の質問:ファイルを2回実行せずにステータスと出力の両方を使用できる機能はありますか?
私の目標は、ファイルを実行し、そのステータス(成功した場合は0)を返し、その出力も返すことです。私はosモジュールを使ってシミュレーションを実行している状態にしています。バッチファイルの実行の返信
status= os.system("file")
出力を持つためにサブプロセスモジュールを使用しています。
output=subprocess.check_output("file")
私の質問:ファイルを2回実行せずにステータスと出力の両方を使用できる機能はありますか?
check_output
は、すでに必要なすべてを行います。ドキュメントから:
subprocess.check_output(引数、*、STDIN =なし、標準エラー出力=なし、シェル= Falseを、 universal_newlines = Falseのは)引数を指定してコマンドを実行し、バイト列としてその 出力を返します。
戻りコードがゼロでない場合、CalledProcessErrorが発生します。 CalledProcessErrorオブジェクトがリターンコード 属性およびSO出力属性のいずれかの出力
にリターンコードを持つことになり、すべてがうまく動作するかどうか、それだけで出力を返します。それ以外の場合は、正確な戻りコードが存在する例外と、呼び出されたプロセスのエラーまでの部分出力が発生します。
ウィンドウの場合、 '%errorlevel%'システム変数を 'os.system()'で確認することができます。 –
'subprocess.Popen'はそれを行います。 ( 'wait()'は返り値を、 'stdout'は出力を返します。 –