编程语言
首页 > 编程语言> > python-2秒后终止while循环,导致循环中的冗长过程

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