ホームページ >バックエンド開発 >Python チュートリアル >os.system の出力を画面に表示せずに Python 変数にキャプチャするにはどうすればよいですか?

os.system の出力を画面に表示せずに Python 変数にキャプチャするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-06 09:25:11276ブラウズ

How Can I Capture os.system Output in a Python Variable Without Displaying it on the Screen?

画面表示を行わずに os.system の出力を変数に代入する

Python では、os.system 関数はシステム コマンドを実行し、終了コードを返します。ただし、出力を画面に出力することは望ましくない場合があります。この記事では、画面上の表示を抑制しながら出力を変数にキャプチャするための解決策について説明します。

解決策 1: os.popen を使用する

以前の問い合わせによると、os.popen は実行可能なオプションを提供しています。 :

os.popen('cat /etc/services').read()

Python 3.6 ドキュメントで指定されているように、os.popen はsubprocess.Popen は、サブプロセスの管理と通信のためのより堅牢な機能を提供します。

解決策 2: subprocess.Popen の使用

サブプロセスを直接使用する場合、次のコードはキャプチャ出力手法を示しています。

import subprocess

proc = subprocess.Popen(["cat", "/etc/services"], stdout=subprocess.PIPE, shell=True)
(out, err) = proc.communicate()
print("program output:", out)

stdout=subprocess.PIPE を設定すると、出力がキャプチャされ、次のようにアクセスして印刷できます。希望します。

以上がos.system の出力を画面に表示せずに Python 変数にキャプチャするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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