小编典典

Python:等待用户输入,如果10分钟后仍未输入,则继续执行程序

python

我试过了:

from time import sleep
while sleep(3): 
    input("Press enter to continue.")

但这似乎不起作用。我希望程序等待用户输入,但是如果10分钟后没有用户输入,请继续执行该程序。

这是python 3。


阅读 407

收藏
2021-01-20

共1个答案

小编典典

为什么代码不起作用?

time.sleep什么也不返回;time.sleep(..)成为的价值None; while循环体未执行。

如何解决

如果您使用的是Unix,则可以使用select.select

import select
import sys

print('Press enter to continue.', end='', flush=True)
r, w, x = select.select([sys.stdin], [], [], 600)

否则,您应该使用线程。

Windows 使用的
特定解决方案msvcrt

import msvcrt
import time

t0 = time.time()
while time.time() - t0 < 600:
    if msvcrt.kbhit():
        if msvcrt.getch() == '\r': # not '\n'
            break
    time.sleep(0.1)
2021-01-20