对于循环中有超时的循环



我正试图找到一种方法来执行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

相关内容

  • 没有找到相关文章

最新更新