1. ホーム
  2. パイソン

[解決済み] パイプで `subprocess` コマンドを使用する方法

2022-03-29 20:16:23

質問

を使いたいのですが subprocess.check_output()ps -A | grep 'process_name' . 様々な解決策を試しましたが、今のところうまくいきません。どなたか方法を教えていただけませんか?

解決方法は?

パイプを使用するには subprocess モジュールでは shell=True .

しかし、これは様々な理由からあまりお勧めできません。特にセキュリティの問題があります。その代わりに psgrep を別々に処理し、片方の出力をもう片方にパイプするようにします。

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 を出力します。