通常、Pythonでstdoutを変更するには、の値を変更しますsys.stdout
。ただし、これはprint
ステートメントにのみ影響するようです。os.system()
それで、 Pythonのコマンドを介して実行されるプログラムの(コンソールへの)出力を抑制する方法はありますか?
41974 次
4 に答える
26
UNIX システムでは、コマンド自体の一部として stderr および stdout を /dev/null にリダイレクトできます。
os.system(cmd + "> /dev/null 2>&1")
于 2010-07-07T18:07:38.450 に答える
18
subprocess.Popen
通信を使用してプログラムを実行し、subprocess.PIPE
その出力を好きな場所に押し込むことを検討できますが、そのままでは、os.system
コマンドを実行するだけで、他には何も実行しません。
from subprocess import Popen, PIPE
p = Popen(['command', 'and', 'args'], stdout=PIPE, stderr=PIPE, stdin=PIPE)
output = p.stdout.read()
p.stdin.write(input)
私の意見では、はるかに柔軟です。完全なドキュメントを参照することをお勧めします: Python サブプロセス モジュール
于 2010-07-07T18:09:39.383 に答える
0
stderrとstdoutをリダイレクトします。
于 2010-07-07T18:02:11.697 に答える
0
Python プログラムで起動するコンソールを完全に削除したい場合は、.pyw 拡張子を付けて保存できます。
私は質問を誤解しているかもしれませんが。
于 2010-07-07T18:09:02.587 に答える