ホームページ >バックエンド開発 >Python チュートリアル >Python で subprocess.Popen 呼び出しの出力を効率的にキャプチャして保存するにはどうすればよいですか?

Python で subprocess.Popen 呼び出しの出力を効率的にキャプチャして保存するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-07 04:36:19171ブラウズ

How Can I Efficiently Capture and Store the Output of a subprocess.Popen Call in Python?

subprocess.Popen 呼び出しの出力を文字列に保存する

Python を使用してシステム コールを実行しようとすると、後で操作するための出力。ただし、subprocess.Popen を単独で使用しても、文字列内の出力をキャプチャする簡単な方法は提供されません。

代替アプローチ

この問題に対処するには、次のオプションを検討してください。 :

Python 2.7 または Python 3

コマンドの実行と出力キャプチャを簡素化する subprocess.check_output() 関数を利用します。

from subprocess import check_output
out = check_output(["ntpq", "-p"])

Python 2.4-2.6

Popen の通信メソッドを採用するobject:

import subprocess
p = subprocess.Popen(["ntpq", "-p"], stdout=subprocess.PIPE)
out, err = p.communicate()

この場合、out には目的の出力が含まれます。

コマンド呼び出しに関する注意

Popen を使用する場合、 command は、コマンドとオプションを含むリストとして指定します (例: ["ntpq", "-p"])。 Popen はコマンドの実行にシェルを利用しないため、これによりコマンドが正しく解釈されることが保証されます。

以上がPython で subprocess.Popen 呼び出しの出力を効率的にキャプチャして保存するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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