跳过带超时的输入函数

Skip the input function with timeout

我正在 Python 3.7.

制作任何程序

我想在特定时间后跳过 input 函数。

我的代码的结构类似于下面的粗略代码。

def functionA():
    ...(skip)...


def functionB():
    ...(skip)...

#TIMEOUT = 0.5
while True:
    TXT = None
    TXT = input("Enter: ")

    if TXT == None:
        functionA()
    elif 'NAME' in TXT:
        functionB()
    elif TXT == 'EXIT':
        break
    else:
        pass

我想在 TIMEOUT 时间后跳过第 TXT = input("Enter: ") 行,0.5 秒。我怎样才能按照我想要的方式制作这个流程的代码?

  • 请注意,只有 0.5 秒的超时不会给用户足够的时间来键入任何内容。我建议多给点时间。

您可以使用 inputtimeout 模块 (available here):

from inputimeout import inputimeout, TimeoutOccurred

def functionA():
    pass


def functionB():
    pass

#TIMEOUT = 0.5
while True:
    TXT = None
    try:
        TXT = inputimeout(prompt = "Enter: ", timeout=0.5)
    except TimeoutOccurred:
        TXT = None

    if TXT == None:
        functionA()
    elif 'NAME' in TXT:
        functionB()
    elif TXT == 'EXIT':
        break
    else:
        pass

您可以使用 inputimeout 模块

您可以通过 运行 cmd 并输入此命令来安装模块

pip install inputimeout

你可以这样使用它

from inputimeout import inputimeout, TimeoutOccurred
try:
    var = inputimeout(prompt='>>', timeout=5)
except TimeoutOccurred:
    var = ''

使用步骤

  1. 导入文件中的模块
  2. 启动try方法
  3. 创建一个变量,而不是输入使用 inputimeout 函数并输入值 as prompt=timeout=
  4. except TimeoutOccurred: 中输入 var 的值(如果发生超时)