[解決済み】サブプロセスの出力を非表示にする方法
2022-03-27 11:56:35
質問
UbuntuでeSpeakを使っていて、メッセージを印刷して話すPython 2.7スクリプトを持っています。
import subprocess
text = 'Hello World.'
print text
subprocess.call(['espeak', text])
eSpeak は目的の音を出しますが、シェルにエラー(ALSA lib..., no socket connect)が散乱し、さっき出力されたものを簡単に読めません。終了コードは0です。
残念ながら、その冗長性をオフにするための文書化されたオプションはありません。したがって、私は、視覚的にのみそれを黙らせ、さらなる対話のために開いているシェルをきれいに保つ方法を探しています。
どうすればいいのでしょうか?
どのように解決するのですか?
Python >= 3.3 の場合、出力を DEVNULL にリダイレクトしてください。
import os
import subprocess
retcode = subprocess.call(['echo', 'foo'],
stdout=subprocess.DEVNULL,
stderr=subprocess.STDOUT)
Python <3.3, 2.7 を含む。
FNULL = open(os.devnull, 'w')
retcode = subprocess.call(['echo', 'foo'],
stdout=FNULL,
stderr=subprocess.STDOUT)
事実上、このシェルコマンドを実行するのと同じです。
retcode = os.system("echo 'foo' &> /dev/null")
関連
-
[解決済み】TypeError: unhashable type: 'numpy.ndarray'.
-
[解決済み] TypeError: 'DataFrame' オブジェクトは呼び出し可能ではない
-
[解決済み] プログラムの実行やシステムコマンドの呼び出しはどのように行うのですか?
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] 辞書を値で並べ替えるにはどうしたらいいですか?
-
[解決済み] リストが空かどうかを確認するにはどうすればよいですか?
-
[解決済み] シェルコマンドの実行と出力のキャプチャ
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Pythonの非常に便利な2つのデコレーターを解説
-
PicgoのイメージベッドツールをPythonで実装する
-
pythonサイクルタスクスケジューリングツール スケジュール詳解
-
Python LeNetネットワークの説明とpytorchでの実装
-
Python Pillow Image.save jpg画像圧縮問題
-
[解決済み】お使いのCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX AVX2
-
[解決済み] [Solved] sklearn error ValueError: 入力に NaN、infinity または dtype('float64') に対して大きすぎる値が含まれている。
-
[解決済み】RuntimeWarning: 割り算で無効な値が発生しました。
-
[解決済み] builtins.TypeError: strでなければならない、bytesではない
-
[解決済み】インポートエラー。モジュール名 urllib2 がない