with
ステートメントを使用して抑制sys.stdout
またはsys.stderr
個別にしようとしています。うまくいかないチュートリアル を見つけました。私は使用Python 3.6.4
していますが、チュートリアルはPython 2
.
SOで調べたところ、いくつか見つかりましたが、アプリケーションが機能しないか、この状況には当てはまりませんでした。
これは当てはまりません: Python サブプロセスは stdout と stderr を抑制します
with
機能するステートメントを
取得できませんでした: Suppress stdout / stderr print from Python functions
これは fortran 用です: Python での FORTRAN (F2PY 経由で呼び出される) 出力のリダイレクト
from contextlib import contextmanager
@contextmanager
def suppress_console(file=sys.stdout):
with open(os.devnull, "w") as devnull:
old_file = file
file = devnull
try:
yield
finally:
file = old_file
with suppress_console():
print(1, file=sys.stdout)
# 1