How to retry something with a timeout in Python?

Gabriel Genellina gagsl-py2 at yahoo.com.ar
Tue Apr 28 22:22:18 EDT 2009


En Tue, 28 Apr 2009 17:56:13 -0300, <tinnews at isbd.co.uk> escribió:

> I want to retry locking a file for a number of times and then give up,
> in pseudo-code it would be something like:-
>
>
>     for N times
>         try to lock file
>             if successful break out of for loop
>     if we don't have a lock then give up and exit
>
>
> How does one do this tidily in python?

for i in range(N):
   if try_to_lock_file():
     break
else:
   raise RuntimeError, "Could not lock file"
do_real_work()

Note the indentation of the `else` clause, it belongs to the `for` loop  
and is executed only when the iteration is completely exhausted.

-- 
Gabriel Genellina




More information about the Python-list mailing list