Bonjour à tous,

Dans le cadre d'un projet de type "timelapse", je souhaite utiliser une boucle infinie de type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
    for filename in camera.capture_continuous('img{counter:04d}.jpg'):
        print('Captured %s' % filename)
        time.sleep(1) # wait 5 minute
que je cherche à limiter dans le temps.

J'ai trouvé une solution pour cela en utilisant une boucle while de type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
a=(time.time())
b=(time.time()+3)
while a<b: a=(time.time())
afin d'interrompre la boucle for au bout de 3 secondes (pour l'exemple).

Mais je n'arrive pas à imbriquer correctement les deux boucles et ces dernières s'exécutent l'une après l'autre (d'abord les 3 secondes du while et après le for ou inversement).

A titre d'exemple (et pour simplifier en remplaçant la partie timelapse par une boucle trèèèès longue qui est à interrompre en principe par le while) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
import time
 
a=(time.time())
b=(time.time())+3
 
while a<b:
    for c in range(100000000000000000000):
        print(c)
a=(time.time())
> le while n'est pas pris en compte

J'imagine que je pourrais faire autrement mais j'aimerais au moins comprendre mon erreur et la logique des while / for.

Merci par avance pour votre éclairage !