ホームページ >バックエンド開発 >Python チュートリアル >subprocess.call() からプロセス出力を取得するにはどうすればよいですか?

subprocess.call() からプロセス出力を取得するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-28 18:30:10635ブラウズ

How Can I Retrieve Process Output from subprocess.call()?

Subprocess.call() からのプロセス出力の取得

subprocess.call() メソッドは、コマンドを実行し、別のスレッドでプロセスを実行するための多用途ユーティリティです。その主な目的は、プロセスの完了を待たずにプロセスを開始することですが、実行されたプロセスの出力へのアクセスが必要な場合もあります。この記事は、subprocess.call() から出力を効果的に取得する手法を検討することで、このニーズに対処することを目的としています。

subprocess.check_output() の活用

Python バージョン 2.7 以降では、subprocess モジュールは、このタスクに対する簡略化されたソリューション subprocess.check_output() を提供します。このメソッドは、プロセス呼び出しから標準出力を抽出し、それを文字列として返すことに特化しています。

次の例を考えてみましょう。

import subprocess

output = subprocess.check_output(["ping", "-c", "1", "8.8.8.8"])

このシナリオでは、ping コマンドは単純な指定された IP アドレスに ping リクエストを送信します。この ping 操作からの出力はキャプチャされ、出力変数に文字列として保存されます。

特定の出力ニーズの処理

特定の状況では、プロセス出力の処理をより詳細に制御する必要がある場合があります。 。このような場合、次の手法を使用できます。

  • stdout および stderr 引数: subprocess.call() を呼び出すときに、stdout および stderr 引数に StringIO オブジェクトを渡します。これにより、プロセスからの標準出力と標準エラーをこれらのオブジェクトに取り込むことができます。
  • プロセスとの通信: Popen オブジェクトの communication() メソッドを使用して、実行中のプロセスと対話します。 。これにより、入力をプロセスに送信し、その標準出力ストリームと標準エラー ストリームの両方を取得できるようになります。

結論

前述の手法を利用することで、出力を効果的に取得して処理できます。 subprocess.call() を使用して開始されたプロセスの数。 subprocess.check_output() を通じて標準出力を取得する簡単な方法が必要な場合でも、出力管理をより詳細に制御する必要がある場合でも、これらのメソッドを使用すると要件を満たすことができます。

以上がsubprocess.call() からプロセス出力を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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