pythonでsubprocess.popenを使用して返り値を取得する方法は何ですか?

subprocess.Popenを使用して戻り値を取得するためには、communicate()メソッドを使用することができます。以下に例を示します:

import subprocess

# 执行命令
process = subprocess.Popen(['ls', '-l'], stdout=subprocess.PIPE)

# 获取命令执行结果
output, error = process.communicate()

# 打印结果
print(output.decode('utf-8'))

上記の例では、subprocess.Popenを使用してls -lコマンドを実行し、その結果をstdoutパラメーターを介してsubprocess.PIPEに渡すことで、コマンドの出力がキャプチャされることを意味します。

その後、process.communicate()メソッドを使用して、コマンドの出力とエラーメッセージ(あれば)を取得します。communicate()メソッドは、コマンドの実行が完了するまでブロックされます。

最後に、print() 関数を使用してコマンドの出力を印刷します。出力はバイト文字列であるため、テキスト文字列に変換するには、.decode(‘utf-8’) メソッドを使用します。

bannerAds