如何获得30秒的多个用户输入并将其保存到列表中?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获得30秒的多个用户输入并将其保存到列表中?相关的知识,希望对你有一定的参考价值。

在我的应用程序中,用户可以输入30秒钟,并且用户可以输入任意数量的单词。

我想在30秒内将所有单词保存到用户输入的列表中。

我也在网站和stackoverflow上冲浪,但发现大多数解决方案仅在linux上有效,而其他解决方案对我而言并不那么吸引人,因此我需要提出问题。

我也尝试过下面的代码,但仍然不能满足我的要求。

import sys, time, msvcrt

def readInput( caption, default, timeout = 2000):
    start_time = time.time()
    sys.stdout.write('%s(%s):'%(caption, default));
    input = ''
    while True:
        if msvcrt.kbhit():
            chr = msvcrt.getche()
            if ord(chr) == 13: # enter_key
                break
            elif ord(chr) >= 32: #space_char
                input += chr
        if len(input) == 0 and (time.time() - start_time) > timeout:
            break

    print ''  # needed to move to next line
    if len(input) > 0:
        return input
    else:
        return default

# and some examples of usage
ans = readInput('Please type a name', 'john') 
print 'The name is %s' % ans
答案
from threading import Thread
import time
user_input_list = []
timeOut = False
start_time = time.time()


def readInput():
    global user_input_list
    while timeOut == False:
        user_input_list.append(input("Please enter your input: "))
    return print("User input list is ", user_input_list)


def countTime(seconds):
    global start_time
    global timeOut
    while True:
        elapsed_time = time.time() - start_time
        if elapsed_time == seconds:
            timeOut = True
            return print("Elapsed time is ", elapsed_time)


if __name__ == '__main__':
    Thread(target=readInput).start()
    Thread(target=countTime(20)).start()

以上是关于如何获得30秒的多个用户输入并将其保存到列表中?的主要内容,如果未能解决你的问题,请参考以下文章

如何获取嵌套的 JSON 数据列表并将其显示在 MatTable 中?

使用列表保存数据并将数据附加到列表作为安全网,python

如何检索 Facebook 好友列表并将其保存以进行解析?

如何从数组列表中分离数据并将其显示到列表视图中?

如何在浏览器中编辑pdf并将其保存到服务器

我如何获得按键并将其写入变量?