首页  >  文章  >  后端开发  >  如何在Python中实现用户输入超时?

如何在Python中实现用户输入超时?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-15 13:30:02334浏览

How Can I Implement a Timeout for User Input in Python?

Python 中用户输入超时

在 Python 中,raw_input() 函数会提示用户输入,但它会无限期地等待,直到用户输入内容。对于需要对用户输入施加时间限制的情况,可以使用 threading 模块来解决。

根据用户的建议,raw_input_with_timeout() 函数采用两个参数: 提示(显示的文本给用户)和超时(以秒为单位的时间限制)。它启动一个计时器线程,该线程会在指定的超时后中断主线程。

这是代码的改进版本:

import threading

def raw_input_with_timeout(prompt, timeout=30.0):
    print(prompt, end=' ')    
    timer = threading.Timer(timeout, thread.interrupt_main)
    astring = None
    try:
        timer.start()
        astring = input(prompt)
    except KeyboardInterrupt:
        pass
    timer.cancel()
    return astring

如果用户在超时之前输入输入,则输入以字符串形式返回。如果达到超时,则返回 None 表示用户没有在指定时间范围内提供输入。

请注意,此解决方案假设用户输入速度不是很慢。如果您需要考虑打字速度慢的问题,您可以在每次输入字符后重新计算 finishat(超时发生的时间)。

以上是如何在Python中实现用户输入超时?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn