键盘库干扰Python输入

问题描述 投票:0回答:1

当我按“p”时,它会触发以“p”开头的输入:

import keyboard

def print_your_name():
    x = input("Enter Your Name: ")
    print(x)



keyboard.add_hotkey('p', print_your_name)
keyboard.wait("esc")

输出:

Enter Your Name:p

有什么方法可以向用户发送干净的输入吗?

python python-3.x keyboard
1个回答
0
投票

如果我可以做些什么来改进这个答案,请告诉我。

我建议不要尝试完全向用户发送干净的输入,而是通过创建虚拟按键来简单地使 p 消失。例如,使用键盘模块中包含的 press() 函数:

import keyboard

def print_your_name():
    keyboard.press('backspace') #this gets rid of the p
    x = input("Enter Your Name: ")
    print(x)

keyboard.add_hotkey('p', print_your_name)
keyboard.wait("esc")

顺便说一句,按键是立即发生的,因此当程序运行时用户根本看不到 p。在这里,我决定使用键盘模块,因为您已经使用它来检测按键,但是您还可以使用其他模块,例如 pyautogui 或 pynput,尽管我认为在这种情况下没有必要。我希望这能回答您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.