ホームページ >バックエンド開発 >Python チュートリアル >サブプロセスの出力を Python の文字列として効率的に保存するにはどうすればよいですか?

サブプロセスの出力を Python の文字列として効率的に保存するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-06 15:21:15843ブラウズ

How Can I Efficiently Store Subprocess Output as a String in 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 サイトの他の関連記事を参照してください。

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