如何解决触发input()时输入框已被按键内容填充的问题?
解决input()自动填充触发按键的问题
当你用keyboard.is_pressed("K")触发input()时,按下的"K"会留在系统输入缓冲区中,导致input()执行时自动读取这个字符,出现输入框预填充的问题。
修复方案
用keyboard.read_key()替代is_pressed,它会读取并消耗掉按下的按键,避免字符残留到input()的输入缓冲区:
import keyboard while True: pressed_key = keyboard.read_key() if pressed_key == "K": _input = input("> ")
另一种方案:清除输入缓冲区
如果坚持使用is_pressed,可以在触发input()前手动清除缓冲区里的残留字符:
import keyboard import sys while True: if keyboard.is_pressed("K"): # 读取并丢弃缓冲区中的K字符 try: sys.stdin.read(1) except IOError: pass _input = input("> ")
为什么你的尝试无效
你之前的代码_input = ""; _input = input("> ")只是重新赋值变量,完全没处理输入缓冲区里的残留字符,因此无法解决问题。
内容的提问来源于stack exchange,提问作者NemGamingAkos
相关产品推荐
相关产品推荐

