Oggi in questo snippet di codice Python mostriamo come realizzare un timer che ogni 60 secondi (per 20 minuti) esegue una specifica azione.

run = input("Start? > ")
mins = 0
# Parte solo se l'utente digita "start"
if run == "start":
    # Cicla finchè non si raggiungono i 20 minuti
    while mins != 20:
        print(mins) # una qualsiasi azione da far eseguire
        # attendi 1 minuto
        time.sleep(60)
        # Incrementiamo i minuti
        mins += 1

Ci possono essere più varianti di timer, alcune vedono protagonisti i Thread. In questo modo il timer viene gestito da un Thread, in maniera asincrona, lasciando libera l’esecuzione del flusso principale del programma. In questo modo otteniamo un timer che ogni 10 secondi esegue print(“Ciao mondo!”):

import threading
 
def timer():
  threading.Timer(10.0, timer).start()
  print("Ciao mondo!")
 
timer()

Quest’ultima implementazione è più indicata nel caso volessimo eseguire più timer paralleli e/o eseguire varie operazioni in concomitanza al timer.

PS. I codici visti sono stati testati sulla versione di Python 3.4.