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

如何修复Python程序未按预期终止、无法持续运行等待用户输入的问题

问题原因

程序执行完所有顶层代码逻辑后会自动终止,你当前的代码只包含打印逻辑,没有加入常驻的按键监听阻塞逻辑,所以执行完打印就直接退出了。

修复方案

实现持续按键监听有两类主流方案,可按需选择:

方案1:使用keyboard库(写法最简单)

先安装依赖:

pip install keyboard

示例代码:

import keyboard

print("hello world")

# 自定义触发逻辑:此处示例按F1时自动触发按下回车
def trigger_action():
    keyboard.press_and_release("enter")
    print("按键映射已触发")

# 绑定触发热键,可自行替换为你需要的按键
keyboard.add_hotkey("f1", trigger_action)

# 阻塞程序保持运行,直到按下esc键退出
keyboard.wait("esc")

方案2:使用pynput库(自定义程度更高)

先安装依赖:

pip install pynput

示例代码:

from pynput.keyboard import Listener, Key, KeyCode, Controller

kb = Controller()
print("hello world")

def on_press(key):
    try:
        # 自定义触发逻辑:此处示例按a时自动触发按下b
        if key == KeyCode.from_char("a"):
            kb.press("b")
            kb.release("b")
            print("按键映射已触发")
        # 按下esc时终止程序
        elif key == Key.esc:
            return False
    except AttributeError:
        # 忽略功能键等无char属性的按键异常
        pass

# 启动监听,join方法会阻塞线程保持程序运行
with Listener(on_press=on_press) as listener:
    listener.join()

注意事项

  • Windows系统运行按键监听程序需要右键选择「以管理员身份运行」,Linux/macOS需要加sudo前缀运行才有对应权限
  • 若需要后台静默运行,Windows下可将文件后缀改为.pyw,运行后不会弹出控制台窗口
  • 所有按键绑定逻辑需要写在阻塞方法之前,否则阻塞后代码不会向下执行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 14:45:03