Python клавиатурный модуль выводит цифры на консоль при нажатии клавиш со стрелками - PullRequest
0 голосов
/ 01 мая 2020

Я пытаюсь написать некоторый код, чтобы периодически очищать консоль и выводить сообщение, всякий раз, когда я нажимаю клавишу, добавляемую в консоль, как будто я нахожусь в состоянии input(), когда нажата клавиша возврата, последняя буква удален. Я также хочу добавить «курсор», чтобы при нажатии клавиш со стрелками выбранные символы перемещались влево и вправо. Все работает как положено, кроме клавиш со стрелками.

Так что я искал inte rnet для любой информации по этому вопросу. Я нашел 1 пост, 3 года go. Он неактивен и ответа не было. Пост здесь . Это очень похоже на мой вопрос, но вместо того, чтобы обнаружить нажатие, мне нужно остановить выход случайных выходов. Я использую Python 3 с Windows.

Эта проблема возникает исключительно при использовании модуля клавиатуры и при обнаружении нажатий стрелок. Если я не обнаружу нажатие стрелок, этого не произойдет даже при импорте модуля. Мой код выглядит следующим образом:

if keyboard.is_pressed("left"): 
  # at this point a "4" is outputted into the console and detected when it wasn't pressed

Аналогично, стрелка вверх выводит «8», стрелка вниз выводит «2», а правая выводит «6». Это, очевидно, звучит смешно, но пост, на который я ссылался выше (это единственный случай, о котором я когда-либо читал), ясно описывает эту идентичную проблему.

Они хотели только различить нажатие 4 и нажатие стрелки влево. При использовании keyboard.hotkey или keyboard.on_press_key, которые я пробовал, не было различий в результатах.

Это должно быть очень легко воспроизвести, но мне было бы интересно узнать, не смог ли кто-нибудь воспроизвести это и связано ли это с определенной c ОС или версией Python. Я сталкивался с этой же проблемой несколько лет go и быстро разочаровался в мини-проекте, теперь я снова испытываю эту проблему, если есть другой способ, которым я могу запустить функцию или определить, является ли клавиша со стрелкой в настоящее время нажатие без вывода этих номеров, это было бы решением этой проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...