我正在使用 Pygame/SDL 的操纵杆模块从游戏手柄获取输入。每次我打电话给它get_hat()
方法将其打印到控制台。这是有问题的,因为我使用控制台来帮助我调试,现在它被淹没了SDL_JoystickGetHat value:0:
每秒60次。有什么方法可以禁用此功能吗?是通过 Pygame/SDL 中的选项还是在函数调用时抑制控制台输出?我在 Pygame 文档中没有看到提到这一点。
edit:事实证明,这是由于编译 SDL 库时打开了调试所致。
为了完整起见,这是一个很好的解决方案戴夫·史密斯的博客 http://thesmithfam.org/blog/2012/10/25/temporarily-suppress-console-output-in-python/:
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")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)