Python を使用してコマンド出力をサイレントにキャプチャする
os.system でコマンドを実行するときに、Python を使用せずに出力をキャプチャしたい状況が発生することがあります。それを画面に表示します。その方法は次のとおりです。
Python では、os.system 関数はコマンドを実行し、その終了ステータスを返します。ただし、コマンドの出力もコンソールに出力されます。出力をサイレントにキャプチャするには、代わりに subprocess モジュールを使用します。
os.popen の使用
os.popen 関数を使用して、コマンドを実行し、その出力をキャプチャできます。出力の読み取りに使用できるパイプ オブジェクトを返します。例:
output = os.popen('cat /etc/services').read() print(output)
サブプロセスの使用
サブプロセス モジュールは、サブプロセスを管理し、サブプロセスと対話するためのより強力な方法を提供します。サブプロセスを使用してコマンド出力をサイレントにキャプチャする方法は次のとおりです。
import subprocess proc = subprocess.Popen([ 'cat', '/etc/services' ], stdout=subprocess.PIPE, shell=True) (output, err) = proc.communicate() print('program output:', output)
このアプローチにより、入力、出力、エラー処理など、サブプロセス実行のさまざまな側面を制御できます。 communication メソッドは、サブプロセスが完了するのを待ち、標準出力ストリームと標準エラー ストリームを含むタプルを返します。
以上がPython でコマンド出力をサイレントにキャプチャするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。