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

l5tcr1uw  于 2024-01-05  发布在  Python
关注(0)|答案(2)|浏览(139)

我用Python 3.7编写程序。
我想跳过input功能后,一个特定的时间。
我的代码具有如下粗略代码的结构。

  1. def functionA():
  2. ...(skip)...
  3. def functionB():
  4. ...(skip)...
  5. #TIMEOUT = 0.5
  6. while True:
  7. TXT = None
  8. TXT = input("Enter: ")
  9. if TXT == None:
  10. functionA()
  11. elif 'NAME' in TXT:
  12. functionB()
  13. elif TXT == 'EXIT':
  14. break
  15. else:
  16. pass

字符串
我想跳过TIMEOUT时间后的TXT = input("Enter: ")行,0.5秒。我如何才能使这个流的代码以我想要的方式?

bvk5enib

bvk5enib1#

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

  1. pip install inputimeout

字符串
你可以这样用

  1. from inputimeout import inputimeout, TimeoutOccurred
  2. try:
  3. var = inputimeout(prompt='>>', timeout=5)
  4. except TimeoutOccurred:
  5. var = ''


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

展开查看全部
vltsax25

vltsax252#

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

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

  1. from inputimeout import inputimeout, TimeoutOccurred
  2. def functionA():
  3. pass
  4. def functionB():
  5. pass
  6. #TIMEOUT = 0.5
  7. while True:
  8. TXT = None
  9. try:
  10. TXT = inputimeout(prompt = "Enter: ", timeout=0.5)
  11. except TimeoutOccurred:
  12. TXT = None
  13. if TXT == None:
  14. functionA()
  15. elif 'NAME' in TXT:
  16. functionB()
  17. elif TXT == 'EXIT':
  18. break
  19. else:
  20. pass

字符串

展开查看全部

相关问题