You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python设置快捷键停止运行脚本的实现方法及现有代码问题排查

问题排查与修复方案

现有代码的问题

  • 回调函数未执行:keyboard.add_hotkey 第二个参数需要是可执行的回调对象,原代码写的lambda: stop 仅返回stop函数本身,没有触发函数调用,快捷键触发时没有任何逻辑执行。
  • 参数匹配错误:stop函数定义时要求传入event参数,但快捷键触发时没有对应传参,即使调用了函数也会抛出参数数量不匹配的异常。

修复方法

你可以直接将回调绑定为stop函数,不需要额外套lambda,也可以删掉不需要的event参数(如果没有用到事件对象的话),修正后的代码如下:

import time
import keyboard

running = True

def stop():  
    global running
    running = False
    print("stop")

  
# 按下ctrl+esc组合键停止脚本运行
keyboard.add_hotkey("ctrl+esc", stop)
  
while running:
    time.sleep(2)
    print("Hello")
    time.sleep(2)

额外注意事项

  • keyboard库捕获全局快捷键需要对应系统权限,Windows下需要以管理员身份运行脚本,Linux下需要root权限,否则快捷键不会触发。
  • 如果需要保留event参数,可以调整代码为keyboard.add_hotkey("ctrl+esc", lambda e: stop(e)),同时保留stop函数的event入参即可。

内容的提问来源于stack exchange,提问作者Stone Garden

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 21:09:00