如何在等待一段时间后进行程序python [重复]

Posted

技术标签:

【中文标题】如何在等待一段时间后进行程序python [重复]【英文标题】:How to carry on a program after certain time waited python [duplicate] 【发布时间】:2018-03-20 23:31:40 【问题描述】:

我有这个代码:

while True:
    i=input'enter #enter or character:'
    if not i:
        break

如果他们输入enter,这会中断程序,但如果他们在 3 秒后没有回答,我希望它立即中断。

我该怎么做?

【问题讨论】:

【参考方案1】:

Python 3 Timed Input(@mediocrity:如果你喜欢这个结果,也许你会投票给他的答案,因为他必须努力回答这个问题并且值得称赞)展示了你正在寻找的一个很好的例子。

我在这里为你复制了它:

import time
from threading import Thread

answer = None

def check():
    time.sleep(3)
    if answer != None:
        return
    print "Too Slow"

Thread(target = check).start()

answer = raw_input("Input something: ")

print(answer)

print ("done")

我认为这个答案和你的问题的细微差别你可以自己解决。

希望对你有帮助

编辑:我在这里发现了一些非常适合 Linux 的东西(我不知道它是否与 Windows 一起运行):http://www.garyrobinson.net/2009/10/non-blocking-raw_input-for-python.html

我知道它还不是您需要的,但我仍然发布它,因为它可能对其他人有所帮助。这就是加里·罗宾逊所写的:

2009 年 10 月 17 日 Python 的非阻塞 Raw_input [2010 年 8 月 30 日编辑,修正了函数名称中的拼写错误,并普遍改进了格式]

我需要一种方法来允许 raw_input() 调用超时。如果它对任何人有用,我编写了这个在类 Unix 操作系统下工作的解决方案。

import signal

class AlarmException(Exception):
    pass

def alarmHandler(signum, frame):
    raise AlarmException

def nonBlockingRawInput(prompt='', timeout=20):
    signal.signal(signal.SIGALRM, alarmHandler)
    signal.alarm(timeout)
    try:
        text = raw_input(prompt)
        signal.alarm(0)
        return text
    except AlarmException:
        print '\nPrompt timeout. Continuing...'
    signal.signal(signal.SIGALRM, signal.SIG_IGN)
    return ''

ans = None
ans = nonBlockingRawInput("Input Something: ", 3)

print ans

【讨论】:

谢谢你,这很好,但是我希望你能在时间到时绕过输入,或者换句话说,在 3 秒后程序会直接说'too慢'。有什么建议吗?? 你用的是windows还是linux? 我用的是windows 你可以试一试,但我不能用 Windows 测试它 是的,抱歉它在 Windows 上不起作用(或至少我的)

以上是关于如何在等待一段时间后进行程序python [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Selenium(Python):单击按钮后,等待所有新元素(可以具有不同的属性)被加载[重复]

按键精灵如何执行完一个脚本后等待一段时间后再次执行这个脚本

如何优化等待时间? (Python)[重复]

如何在pygame中等待一段时间?

Python:只要条件为真,在一段时间内重复执行操作

python如何实现元素等待