Python获取有超时的用户输入

本教程将讨论使用Python的inputimeout 库从一个有超时时间的用户那里获得输入。

Python 获取有超时的用户输入

如果我们想在一个特定的时间段内获取用户的输入,比如5秒,我们可以使用Python的inputimeout 库。我们可以使用pip ,用下面这行代码来安装这个库。

pip install inputimeout

我们可以在PowerShell或命令提示符下运行这个命令来安装inputimeout 库。在运行上述命令之前,请确保pip 已经安装并添加到PATH 中。

如果pip 没有被添加到路径中,我们必须提供pip.exe 文件的完整路径及其名称,以便在PowerShell 或命令提示符中使用。下面是使用的例子。

C:UsersammarAppDataLocalProgramsPythonPython39Scriptspip.exe install inputimeout

如果inputimeout ,没有任何错误的安装,我们可以导入inputimeoutTimeoutOccured 模块,在我们的代码中使用。inputimeout() 函数将接受用户的输入,我们可以在里面传递两个参数。

第一个参数,prompt ,是我们在接受输入时要显示给用户的信息;这个参数是可选的。第二个参数,timeout ,用于设置时间,以秒为单位,该函数将等待到给定的时间。之后,它将引发一个异常,我们可以使用异常名称TimeoutOccured ,我们可以将其与try-except 语句一起使用以避免错误。

from inputimeout import inputimeout, TimeoutOccurred
try:
    user_input = inputimeout(prompt='Enter input: n', timeout=5)
except TimeoutOccurred:
    user_input = 'you have not entered any input'
print(user_input)

输出:

Enter input:
you have not entered any input

在上面的代码中,我们使用了Python的try-except 语句来避免在用户没有在给定的时间内输入任何信息时出现异常。我们使用了异常的名称,将输入的内容设置为其他的东西,比如默认值。

如果用户输入了输入,就会被打印出来,如果用户在给定的超时时间内没有输入任何输入,就会打印默认输入。输入的内容被保存在user_input 变量中。

请查看这个链接,了解关于inputimeout 库的更多细节。