Максим Зубенко, для меня,как для новичка это всё довольно не понятно.Я бы просто хотел узнать код,который поможет привязать функцию к определённой клавише
AnnoyingWolf, тут не совсем адекватное сравнение. Python это своего рода строй-площадка с материалами. Что-то уже есть, что-то можно привести своё. И вот ты кое-как по кирпичику сделал что-то. Оно кривое, косое, но трёх-этажное. И ты говоришь, а есть ли возможность быстро спускаться с третьего на первый? Ну долго по лестнице.
Тебе говорят, вот труба, как у пожарных. Бац и ты внизу. Ты говоришь, не ну это же не спускаться.
Тебе говорят, вот человек, уже делал лифт вот таким способом. А ты говоришь, ну мне это всё сложно, я просто хочу лифт и ничего не хочу для этого знать. Как мне сделать лифт просто ничего не делая. Ну в твоём случае видимо никак.
p.s. по факту нужно найти готовую библиотеку, выполняющую твои действия. Установить её, подключить к коду, и почитав документацию, сделать то, что ты хочешь и так, как тебе нужно. (в твоём примере это сочетание клавиш и действие при его нажатии)
Максим Зубенко, Ясно,спасибо.Я в интернете прочитал довольно много информации,но вся она относится к библиотеке tkinter и никак не сможет помочь при консольном взаимодействии.И в целом в интернете нет какой-либо информации по интересующей меня теме.
Максим Зубенко, pynput просто считывает нажатия клавиатуры,но никак не хочет вызывать функцию при нажатии определённой клавиши.
from pynput import keyboard
def on_press(key):
try:
print('alphanumeric key {0} pressed'.format(
key.char))
except AttributeError:
print('special key {0} pressed'.format(
key))
def on_release(key):
print('{0} released'.format(
key))
if key == keyboard.Key.esc:
# Stop listener
return False
# Collect events until released
with keyboard.Listener(
on_press=on_press,
on_release=on_release) as listener:
listener.join()
Для этого кода я нашёл возможное решение,но я абсолютно не понимаю как это сделать ссылаясь на этот ответ "Listener является потоком, поэтому, если вы присоединитесь к нему, ваш основной поток будет ждать до конца, чтобы продолжить обработку.
Вы можете просто создать Listenerобъект без withоператора, и он будет выполняться вдоль основного потока (пока не будет возвращена функция обратного вызова False)"