首页 > 解决方案 > 如何在 x 秒后对 Python 的输入强制“输入”?

问题描述

那是我的代码:

while True:
    prompt = "Enter code: "
    code = input(prompt)
    if code == "123":
        open_door()

当用户在没有“Enter”键的 USB 键盘上键入“123”时,程序会自动打开一扇门。

由于我的键盘没有“Enter”键,我想在 5 秒后强制“Enter”。循环开始 5 秒后,无论输入什么,程序都会按“Enter”。如果按code“Enter”键成功按住“123”,则门打开;否则,将有第二次机会。

我怎样才能做到这一点?

添加信息:该程序将在 Raspberry Pi 3 中运行,但我使用 Mac 进行测试。

请注意,“购买带有“Enter”键的键盘”是不可能的,因为它实际上不是键盘;它是一个 RFID 阅读器,其工作原理与键盘完全一样。为了便于理解,我更喜欢使用“键盘”。

标签: pythonpython-3.xmultithreadinginputtime

解决方案


这对我来说很好:

import pyautogui
import threading

def break_input():
    time.sleep(5)
    pyautogui.press('enter')

while True:
    threading.Thread(target=break_input).start()
    prompt = "Enter code: "
    code = input(prompt)
    if code == '123':
        open_door()

您将需要第三方库pyautogui


推荐阅读