【问题标题】:Terminate Python program if input isn't specified in due timeframe如果未在规定时间内指定输入,则终止 Python 程序
【发布时间】:2021-09-25 14:48:05
【问题描述】:

如果用户未在特定时间范围内(比如 5 秒)提供输入,我将尝试终止 python 程序。

代码已从mediocrity's answer获取和编辑

import sys
import time
from threading import Thread

x = None

def check():
    global x
    time.sleep(5)
    if x:
        print("Input has been given!")
        return
    sys.exit()

Thread(target=check).start()
x = input("Input something: ")

但它一直在等待输入并且不会终止,除非给出输入。 如何更改代码以使其按预期执行?

【问题讨论】:

  • 您是否阅读了您复制的答案下方的 cmets?他们说它不起作用。
  • 我已经尝试过该解决方案,它会立即终止进程,不会有任何延迟。输出为You have 5 seconds to type in your stuff... You typed None
  • 链接问题有23个答案。
  • 我也想看看是否可以用线程和我提供的代码来完成。
  • 其实,如果你想终止整个脚本,我认为你的原始代码应该可以工作。我不知道为什么没有。

标签: python python-3.x input terminate


【解决方案1】:

你应该试试这个代码在 vscode 上的工作

import sys
import time
from threading import Thread

x = None

def check():
  global x
  time.sleep(5)
  if x:
    print("Input has been given!")
    return
  else:
    print("input has not been given for last 5 sec") 
    sys.exit()
if __name__=='__main__':
  t1=Thread(target=check)
  t1.start()

  x = input("Input something: ")
  t1.join()

【讨论】:

    猜你喜欢
    • 2021-05-16
    • 2014-04-30
    • 2021-12-13
    • 2021-12-12
    • 2017-01-27
    • 2016-03-12
    • 2018-10-12
    • 2011-05-28
    • 2017-02-04
    相关资源
    最近更新 更多