【问题标题】:How to force an "enter" on Python's input after x seconds?如何在 x 秒后强制在 Python 的输入上“输入”?
【发布时间】:2019-01-13 23:11:27
【问题描述】:

这是我的代码:

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 阅读器,其工作原理与键盘完全一样。为了便于理解,我更喜欢使用“键盘”。

【问题讨论】:

  • 指定一些结束字符并尝试使用这个package按字符阅读。
  • 忽略我的第一条评论,我看错了。没有这个技术的图书馆吗?我发现它依赖于标准 input() 很不寻常
  • @roganjosh 它不依赖于标准input()。其实它什么都不依赖。它是一个 USB 读卡器,当靠近 RFID 卡时,它可以像键盘一样输入卡的代码。它只是“按键”,但最后没有按“Enter”。如果我打开记事本,它会将卡的代码输入到记事本中,如果我打开计算器,它会将代码输入到计算器中。

标签: python python-3.x multithreading input time


【解决方案1】:

这对我来说很好用:

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

【讨论】:

    猜你喜欢
    • 2016-12-23
    • 2021-07-05
    • 2013-01-07
    • 1970-01-01
    • 1970-01-01
    • 2014-09-08
    • 2018-05-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多