ホームページ >バックエンド開発 >Python チュートリアル >Python の「subprocess」モジュールでコマンドをパイプする方法は?

Python の「subprocess」モジュールでコマンドをパイプする方法は?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-13 16:20:13275ブラウズ

How to Pipe Commands in Python's `subprocess` Module?

Python のサブプロセスを使用してコマンドをパイプする方法

質問: で subprocess.check_output() を利用するにはどうすればよいですか? ps -A | などのパイプコマンドgrep 'process_name'?

回答:

subprocess モジュールでパイプを使用することは可能ですが、セキュリティ上の懸念があるため、注意して 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。