python-2秒后终止while循环,导致循环中的冗长过程
作者:互联网
我有一个while循环,其中包含一个过程,每次大约花费1秒,但有时需要5分钟以上.如果此5分钟的情况发生,我希望循环在2秒后终止.
我已经尝试过
import time
t1 = time.time() + 2
while time.time() < t1:
PerformProcess
但是这种方法受到以下限制,即PerformTime每次计算都会自动终止.
我通常看到的另一个解决方案是
import time
t1 = time.time()
t2 = time.time()
while t2 - t1 < 2:
PerformProcess
t2 = time.time()
但是此方法不起作用,因为如果进行5分钟的处理,将无法达到t2的刷新.
我基本上只需要一种方法,可以在2秒后终止while循环,以便在while循环内不进行任何时间计算和/或使time计算不会在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并在发生超时时执行一些操作.
标签:while-loop,python-2-7,python,time 来源: https://codeday.me/bug/20191122/2058726.html