【发布时间】:2021-09-22 01:23:27
【问题描述】:
这是我的尝试:
from inputimeout import inputimeout, TimeoutOccurred
import time
import sys
import os
def get_choice(maxtimeout=9):
try:
for remaining in range(maxtimeout, 0, -1):
sys.stdout.write("\r")
sys.stdout.write(
"Want to continue to next item(Y/N)? Defaults to Y in {:2d} seconds...".format(
remaining + 1
)
)
sys.stdout.flush()
time.sleep(1)
c = inputimeout(prompt="", timeout=1)
except TimeoutOccurred:
c = "Y"
return c
我的方法的问题是:
- 在超时完成之前,输入的键不可见。
- 用户必须在选择后按回车键。
- 无论用户何时输入值,用户都必须等待超时完成。
【问题讨论】:
-
您可以使用
signal模块设置一个计时器,如果用户在给定的时间内没有提供输入,则该计时器将关闭。如果您无法使其正常工作,我可以稍后提供示例。
标签: python python-3.x input