Получить ключевой код нажатой клавиши из Python

Можно ли заставить python прочитать клавишу (например, Enter или Escape или клавишу со стрелкой), нажатую пользователем, и записать код этой клавиши в переменную?

Я посмотрел на это привязку/захват клавиши Python, но это отображает только символ, который вы нажимаете в оболочке. Я хочу записать это значение в переменную, его не нужно печатать (и не python '\n' для Enter, а настоящий код клавиши (например, 13, я думаю, что это в Windows) для клавиши Enter).


person Yello Four    schedule 07.08.2015    source источник
comment
используйте функцию ord(), она получает код ключа python в виде числа.   -  person Moshe Rabaev    schedule 07.08.2015
comment
@MosheRabaev Это не работает на Mac, хотя для меня ... оно говорит, что у меня нет правильной кодировки или что-то в этом роде. Кроме того, как мне использовать unicode int в ord()?   -  person Yello Four    schedule 07.08.2015
comment
@MosheRabaev Причина, по которой я прошу юникод, заключается в том, что вы не можете проверить ключ, такой как Enter, с помощью ord () .... не так ли?   -  person Yello Four    schedule 07.08.2015
comment
вы могли бы ord('\r') дать вам 13, как вы сказали.   -  person Moshe Rabaev    schedule 07.08.2015
comment
@MosheRabaev Что, если мне нужно сделать это для клавиш со стрелками? Как и в моей программе, мне нужно иметь возможность подобрать (всего): клавиши со стрелками, клавишу ввода, клавишу пробела. Есть ли способ собрать все это?   -  person Yello Four    schedule 07.08.2015
comment
Вы можете использовать клавиши w,a,s,d для перемещения вверх, влево, вниз и вправо соответственно, а для пробела используйте '\w'.   -  person Moshe Rabaev    schedule 07.08.2015
comment
@MosheRabaev О, понятно. Хорошая мысль :))))   -  person Yello Four    schedule 07.08.2015
comment
Давайте продолжим обсуждение в чате.   -  person Yello Four    schedule 07.08.2015


Ответы (1)


Это работает для меня. @MosheRabaev был прав, и это всего лишь версия кода. Я думаю, вам просто нужно найти символы для всех специальных клавиш (например, «\ r» для Enter). Хотя понятия не имею, что означают символы для клавиш со стрелками...

import wx
user_input = str(raw_input())

user_input += '\r' #If they press the Enter Key
print user_input

if ord(user_input) == wx.WXK_RETURN:
        print "hey"
print "what"
person Yello Four    schedule 07.08.2015