0

I'm trying to find a way to do a for loop, and if the iteration of the for loop is more than the timeout, then it break and go to the next iteration.

Example :

timeout = 60
for i in mylist:
   i += 1
   if time > timeout:
       break

2 Answers 2

1

I think you can use the time module as shown here:

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
Sign up to request clarification or add additional context in comments.

Comments

0

Assuming that a single iteration doesn't take so much, just use time module and a while loop as follows:

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.