サブプロセス コマンドでパイプを使用する方法
サブプロセス モジュールを使用する場合、パイプを使用して次のことを行う必要があるシナリオが発生する場合があります。複数のコマンドを接続します。この質問では、次のコマンドで subprocess.check_output() を使用する際の課題を検討します:
ps -A | grep 'process_name'
回答
サブプロセスでパイプを使用するには、shell=True引数を採用することができる。ただし、shell=True を使用するとセキュリティ上の懸念が生じるため、慎重に使用する必要があります。より良いアプローチには、ps プロセスと grep プロセスを別々に作成し、出力を一方から他方にパイプ処理することが含まれます。
ps = subprocess.Popen(('ps', '-A'), stdout=subprocess.PIPE) output = subprocess.check_output(('grep', 'process_name'), stdin=ps.stdout) ps.wait()
前述の特定のシナリオでは、より簡単な解決策は、subprocess.check_output(('ps ', '-A')) を使用し、出力で str.find を使用します。
以上がPython の「subprocess」モジュールを使用してコマンドを適切にパイプする方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。