gpt4 book ai didi

python - 如何在 Python 中抑制控制台输出?

转载 作者:IT老高 更新时间:2023-10-28 22:14:07 26 4
gpt4 key购买 nike

我正在使用 Pygame/SDL 的操纵杆模块从游戏 handle 获取输入。每次我调用它的 get_hat() 方法时,它都会打印到控制台。这是有问题的,因为我使用控制台来帮助我调试,现在它每秒被 SDL_JoystickGetHat value:0: 60 次淹没。有没有办法可以禁用它?通过 Pygame/SDL 中的选项或在函数调用时抑制控制台输出?我在 Pygame 文档中没有看到任何提及。

编辑:这是由于在编译 SDL 库时打开了调试。

最佳答案

为了完整起见,Dave Smith's blog 提供了一个不错的解决方案:

from contextlib import contextmanager
import sys, os

@contextmanager
def suppress_stdout():
with open(os.devnull, "w") as devnull:
old_stdout = sys.stdout
sys.stdout = devnull
try:
yield
finally:
sys.stdout = old_stdout

有了这个,你可以在任何你想抑制输出的地方使用上下文管理:

print("Now you see it")
with suppress_stdout():
print("Now you don't")

关于python - 如何在 Python 中抑制控制台输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2125702/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com