如何在Python 3中创建带超时的输入?(指定时间段后跳过输入)

l5tcr1uw  于 12个月前  发布在  Python
关注(0)|答案(2)|浏览(108)

我用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秒。我如何才能使这个流的代码以我想要的方式?

bvk5enib

bvk5enib1#

您可以使用inputimeout模块
您可以通过运行cmd并键入以下命令来安装该模块

pip install inputimeout

字符串
你可以这样用

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


步骤来使用
1.导入文件中的模块
1.启动try方法
1.创建一个变量,而不是使用inputimeout函数输入值a s prompt=timeout=
1.在except TimeoutOccurred:中,如果发生超时,则输入var的值

vltsax25

vltsax252#

  • 请注意,仅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

字符串

相关问题