gpt4 book ai didi

python - 在 2 秒后终止 while 循环以在循环内进行冗长的处理

转载 作者:行者123 更新时间:2023-11-28 16:39:56 28 4
gpt4 key购买 nike

我有一个 while 循环,其中包含一个过程,每次大约需要 1 秒,但偶尔会超过 5 分钟。我希望循环在 2 秒后终止,以防发生这 5 分钟的情况。我已经试过了

import time
t1 = time.time() + 2
while time.time() < t1:
PerformProcess

但这种方法的局限性在于每次计算 time.time() 时 PerformProcess 都会自动终止。

我经常看到的另一个解决方案是

import time
t1 = time.time()
t2 = time.time()
while t2 - t1 < 2:
PerformProcess
t2 = time.time()

但这种方法不起作用,因为如果执行 5 分钟的过程,则不会达到 t2 的刷新。

我基本上只需要一种方法在 2 秒后终止 while 循环,这样 while 循环内就不会进行时间计算和/或时间计算不会终止 while 循环内的进程。

如果有用的话,PerformProcess 实际上是使用 urllib 打开网页并从中提取数据。它所做的简化版本本质上是

import urllib
f = urllib.urlopen(str(Hyperlink))
s = f.read()
print s
f.close()

其中 f 通常需要 1 秒,但有时由于某种原因需要更长的时间。

最佳答案

如果我理解正确,您尝试设置的超时与 url 获取有关。我不确定您使用的是哪个版本的 python,但如果您使用的是 2.6+,那么我想知道您是否想做这样的事情:

import urllib2
f = urllib2.urlopen(str(Hyperlink), timeout=2)

然后您需要包装一个 try/except 并在发生超时时做一些事情。

关于python - 在 2 秒后终止 while 循环以在循环内进行冗长的处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20843785/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com