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

Python の「subprocess」モジュールを使用してコマンドを適切にパイプする方法?

Patricia Arquette
リリース: 2024-12-18 06:55:15
オリジナル
339 人が閲覧しました

How to Properly Pipe Commands Using Python's `subprocess` Module?

サブプロセス コマンドでパイプを使用する方法

サブプロセス モジュールを使用する場合、パイプを使用して次のことを行う必要があるシナリオが発生する場合があります。複数のコマンドを接続します。この質問では、次のコマンドで 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート