循环内有超时的for循环?

for-loop with a timeout inside the loop?

我正在尝试找到一种方法来执行 for 循环,如果 for 循环的迭代次数超过超时时间,则它会中断并转到下一次迭代.

示例:

timeout = 60
for i in mylist:
   i += 1
   if 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

我认为您可以使用 time 模块,如下所示:

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