ホームページ >バックエンド開発 >Python チュートリアル >サブプロセスの出力を Python の文字列として効率的に保存するにはどうすればよいですか?
サブプロセスの出力を文字列に保存する
Python でシステム コールを実行する場合、その後の操作のために結果を文字列に保存することが重要になります。この記事では、Python で subprocess.Popen を使用してこれを効果的に実現する方法について説明します。
以下の例を考えてみましょう:
import subprocess # Create a Popen object to execute the ntpq command p2 = subprocess.Popen("ntpq -p")
このコマンドの出力を文字列に保存するには、主に 2 つのメソッドがあります。アプローチ:
方法 1: subprocess.check_output (Python 2.7 または Python 3)
この関数は、Popen と通信処理を組み合わせて、stdout 出力を文字列として返します。
from subprocess import check_output # Execute the command and store the output in a string out = check_output(["ntpq", "-p"])
方法 2: 通信 (Python 2.4-2.6)
古い Python バージョンの場合、通信メソッドは次のとおりです。
import subprocess # Create a Popen object with stdout connected to a pipe p = subprocess.Popen(["ntpq", "-p"], stdout=subprocess.PIPE) # Read the stdout output and store it in a string out, err = p.communicate()
Popen はシェルを呼び出さないため、コマンドはリストとして提供する必要があることに注意してください。
以上がサブプロセスの出力を Python の文字列として効率的に保存するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。