如何用Python的Keyboard模块实现按键长按功能?
如何用Python的keyboard模块实现长按按键直到指定按键触发释放
我正在开发一款赛车游戏AI,需要实现长按“w”键实现加速的功能(而非快速点按)。尝试用Python的keyboard模块写了一段代码,但没能实现预期的长按效果,想知道怎么修改才能让“w”键保持长按状态,直到按下“del”键时才释放。
尝试的代码:
keyboard.press('w') keyboard.wait('del') keyboard.release('w')
你的代码逻辑本身是正确的,没能达到预期效果大概率是权限问题导致的。keyboard模块需要系统级的按键控制权限,需要注意以下几点:
安装依赖模块
确保已正确安装keyboard模块:pip install keyboard以管理员权限运行脚本
- Windows:右键命令提示符/终端选择“以管理员身份运行”,再执行Python脚本
- Linux/macOS:运行脚本时添加
sudo前缀:sudo python your_script.py
代码逻辑说明
keyboard.press('w'):会持续按住“w”键,不会自动释放keyboard.wait('del'):阻塞当前线程,直到检测到“del”键被按下keyboard.release('w'):接收到“del”键触发信号后,释放“w”键
如果需要避免主线程被阻塞,可以结合线程实现,示例代码如下:
import keyboard import threading def hold_w_until_del(): keyboard.press('w') keyboard.wait('del') keyboard.release('w') # 启动线程执行长按逻辑 threading.Thread(target=hold_w_until_del).start() # 主线程可继续执行其他AI逻辑 while True: # 此处添加赛车游戏AI的其他处理逻辑 pass
内容的提问来源于stack exchange,提问作者14sirs
相关产品推荐
相关产品推荐

