質問

通常、私はの値を変更することにより、pythonのstdoutを変更できます sys.stdout. 。ただし、これは影響するだけのようです print ステートメント。ですから、私が(コンソールへ)、経由で実行されるプログラムの出力(コンソールへ)を抑制する方法はありますか os.system() Pythonでコマンド?

役に立ちましたか?

解決

プログラムを経由して実行することを検討できます 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サブプロセスモジュール

他のヒント

UNIXシステムでは、コマンド自体の一部としてSTDERRとSTDOUTを /dev /nullにリダイレクトできます。

os.system(cmd + "> /dev/null 2>&1")

stderrとstdoutをリダイレクトします。

Pythonプログラムで起動するコンソールを完全に排除する場合は、.pyw拡張子で保存できます。

しかし、私は質問を誤解しているかもしれません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top