По-видимому, у версии pygame, которую я использую, есть проблема, из-за которой операторы отладки были оставлены в - Как подавить вывод в консоль в Python? при использовании joystick.get_axis
. Это проблема, но мне не удалось использовать методы, представленные в этих ответах. Каждый из методов по-прежнему печатал SDL_JoystickGetAxis value
.
Я также попробовал этот блог но я все еще выводил на консоль. Думая, что это может быть проблема с stdout
против stderr
, я попытался подавить stdout
, затем stderr
, затем оба, но безрезультатно.
В основном мой код постоянно печатает SDL_JoystickGetAxis value:0
или любое другое значение оси. Как мне подавить эти отладочные операторы?
import os
import sys
from contextlib import contextmanager
@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
Позже в своем коде я использую эту функцию:
if speedchange == False and headingchange == False:
time.sleep(0.1)
with suppress_stdout():
speed_ax = joys.get_axis(1)
head_ax = joys.get_axis(0)
Что по-прежнему выводит операторы отладки