【发布时间】:2019-08-07 05:07:36
【问题描述】:
我想知道是否有一种方法可以检测在 python 3 中按下键的时间,如下所示:
if keypressed('a'):
print('you pressed a')
(为简单起见的示例)
【问题讨论】:
标签: python python-3.x input terminal keyboard
我想知道是否有一种方法可以检测在 python 3 中按下键的时间,如下所示:
if keypressed('a'):
print('you pressed a')
(为简单起见的示例)
【问题讨论】:
标签: python python-3.x input terminal keyboard
keyboard 模块可以给你比你想要的更多。
下面介绍几种检测按键的方法:
方法#1:
它会不断检测您的按键。当您按a 时,它将打印。按Ctrl+C跳出循环
import keyboard
while True:
if keyboard.is_pressed("a"):
print("You pressed 'a'")
方法#2:
它将等待您按a 并阻止整个代码,直到您按a。它只会检测一次。
import keyboard
keyboard.wait('a')
print("You pressed 'a'")
【讨论】:
似乎pynput library 可以帮助您。项目文档中的一个示例:
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()
# ...or, in a non-blocking fashion:
listener = mouse.Listener(
on_press=on_press,
on_release=on_release)
listener.start()
【讨论】:
您可以使用pip3 install keyboard 安装keyboard 模块并简单地编写
if keyboard.is_pressed('a'):
print('you pressed a')
【讨论】:
import keyboard 或 from keyboard import is_pressed 如果您只需要 is_pressed 函数