サブプロセスを使用してパイプを使用して外部コマンドを実行する
サブプロセス モジュールを使用する場合、パイプを使用して 1 つの外部コマンドの出力を入力として接続する必要がある場合があります。別のものに。これを実現するには、subprocess.check_output() 関数で shell=True パラメータを利用できます。
ただし、セキュリティ上の懸念があるため、shell=True を使用する場合は注意して進めることが重要です。代わりに、コマンドごとに個別のプロセスを作成し、それに応じて出力をパイプすることをお勧めします。
さらに詳しく説明するには、次の例を検討してください。
ps = subprocess.Popen(('ps', '-A'), stdout=subprocess.PIPE) output = subprocess.check_output(('grep', 'process_name'), stdin=ps.stdout) ps.wait()
このシナリオでは、 ps コマンドは次のとおりです。が実行され、その出力が grep コマンドにパイプされます。 grep からの結果の出力は、「output」変数に保存されます。
また、shell=True が望ましくない場合は、str.find を使用して同じ結果を得ることができます。
output = subprocess.check_output(('ps', '-A')) process_found = 'process_name' in output
以上がPython の「subprocess」モジュールで外部コマンド出力を効率的にパイプするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。