我希望在程序运行时,我输入的所有键都被忽略。在一个简单的例子中,我要解决的问题如下。
from time import sleep
sleep(5)
如果我在这 5 秒内输入一些内容,那么当时间到了时,我写的任何内容都会出现。在这种情况下,它将显示在命令行中。
这在创建多个线程时会影响我,其中一个线程专门在几秒钟内打印多次,当它完成时,另一个线程接受输入。在另一个简单的例子中,它类似于:
from time import sleep
sleep(5) # If I type something here and press 'Enter', right after the 5 seconds, the input will auto-fill
entry = input('Write something: ')
我搜索了任何可以完成该任务的库,但什么也没找到。
此演示代码将在前 5 秒内收集键盘输入。
import msvcrt
import time
def user_input(timeout):
print("You have 5 seconds to input something:")
start_time = time.time()
input_text = ""
while True:
if msvcrt.kbhit():
char = msvcrt.getch().decode("utf-8")
if char == '\r':
break
input_text += char
current_time = time.time()
if current_time - start_time > timeout:
print("\nTime's up!")
return input_text if input_text else None
return input_text
if __name__ == "__main__":
result = user_input(5)
if result is not None:
print("You entered:", result)