我正试图找到一种方法来执行for
循环,如果for
循环的迭代超过超时时间,那么它就会中断并进入下一次迭代。
示例:
timeout = 60
for i in mylist:
i += 1
if time > timeout:
break
我认为您可以使用时间模块,如下所示:
import time
#get the time at the start of the program
x = time.localtime(time.time())
start_time = time.strftime('%S', x)
#the loop
timeout = 5
for i in range(10000000):
i += 1
y = time.localtime(time.time())
now_time = time.strftime('%S', y)
run_time = int(now_time) - int(start_time)
print(run_time) #to see the run_time
if run_time > timeout:
break
假设一次迭代不需要太多时间,只需使用time
模块和while循环,如下所示:
mylist = [1,2,3]
import time
timeout = 60
time_start = time.time()
i = 0
while i < len(mylist) and time.time() - time_start < timeout:
# do your stuff
i += 1
if i == len(mylist):
# this code runs if the iteration has completed, pass does nothing
pass
else:
# and this code runs if there was a timeout
pass