記事ディレクトリ
この記事の主な目的は、Python で実行されるサブプロセスの標準出力を読み取る方法を示すことです。
Python サブプロセスは実行中に stdout を読み取ります
他の多くのビルトインと同様に、Subprocess はビルトインであり、「通常の」Python インストールでプレインストールされます。
これは主に、新しいプロセスでタスク、プロセス、プログラムを実行し、特定のタスクのセットを実行して結果を返すときに使用されます。
これが広く使用されている多くの理由の 1 つは、外部プログラムと実行可能ファイルを別のプロセスとしてプログラム内から直接実行できることです。
Subprocess ライブラリを使用してプログラムを実行する場合、この外部プログラムの出力をリアルタイムで表示することが必要になる場合があります。これは、プログラムがリアルタイムであり、短時間後の計算に依存する場合など、さまざまな理由で要件となる場合があります。
次のプログラムを考えてみましょう。
import subprocess
def execute(command):
process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
output = process.communicate()[0]
exitCode = process.returncode
if (exitCode == 0):
return output
else:
raise Exception(command, exitCode, output)
if __name__ ==</