ホームページ >バックエンド開発 >Python チュートリアル >Ubuntu で Python のサブプロセスをサイレントに実行し、その出力を抑制するにはどうすればよいですか?

Ubuntu で Python のサブプロセスをサイレントに実行し、その出力を抑制するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-11 03:54:15455ブラウズ

How Can I Silently Run a Subprocess in Python on Ubuntu and Suppress its Output?

Ubuntu でのサブプロセス出力のサイレンシング

提供された Python スクリプトでは、eSpeak がシェルに不要なエラー メッセージを表示します。目標は、望ましい可聴応答を維持しながら、この出力を抑制することです。 eSpeak の冗長性を抑制する直接的な方法は見つかりませんでしたが、その出力を視覚的に沈黙させる解決策は存在します。

Python での出力のリダイレクト >= 3.3

出力を効果的に非表示にするには、出力をDEVNULL 属性を使用した null デバイス:

import subprocess

subprocess.call(['echo', 'foo'],
    stdout=subprocess.DEVNULL,
    stderr=subprocess.STDOUT)

Python での出力のリダイレクト

3.3
import os
FNULL = open(os.devnull, 'w')
subprocess.call(['echo', 'foo'],
    stdout=FNULL,
    stderr=subprocess.STDOUT)

Python 3.3 より前のバージョンの場合は、次のアプローチを使用します。

シェル コマンドとの類似点
retcode = os.system("echo 'foo' > /dev/null")

提供されるソリューションは、次のシェル コマンドの実行に似ています。

出力を /dev/null にリダイレクトすることで、混乱が解消されます。効果的に隠蔽され、さらなる対話のためにシェルをきれいなままにします。

以上がUbuntu で Python のサブプロセスをサイレントに実行し、その出力を抑制するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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