¿Cómo puedo hacer un retraso en Python?


Answers

Puede usar la función sleep () en el módulo de tiempo. Puede tomar un argumento flotante para una resolución de segundo segundo.

from time import sleep
sleep(0.1) # Time in seconds.
Question

Me gustaría saber cómo poner un retraso de tiempo en un script de Python.




Buena pregunta.

Puedes obtenerlo simplemente haciendo esto:

from time import sleep

# doing stuff
sleep(0.5) # sleeping half a second (sleep() uses seconds, but you can also use floats)
# doing stuff..

Espero, podría ayudar.




La biblioteca tkinter en la biblioteca estándar de Python es una herramienta interactiva que puede importar. Básicamente, puede crear botones, ventanas emergentes y elementos que aparecen como ventanas que manipula con código.

Si usa tkinter, NO USE TIME.SLEEP() porque TIME.SLEEP() su programa. Esto me pasó a mí. En su lugar, use root.after() y reemplace los valores por algunos segundos, en milisegundos. Por ejemplo, time.sleep(1) es equivalente a root.after(1000) en tkinter.

De lo contrario, time.sleep() , que muchas respuestas han señalado, que es el camino a seguir.




Los retrasos se pueden implementar mediante el uso de tres métodos.

Comencemos con el más fácil:

import time
time.sleep(5) #delay for 5 seconds.

El segundo método para retrasar sería usar el método de espera implícito.

 driver.implicitly_wait(5)

El tercer método es más útil cuando tiene que esperar hasta que se complete una acción en particular o hasta que se encuentre un elemento.

self.wait.until(EC.presence_of_element_located((By.ID, 'UserName'))



Un poco de diversión con el generador soñoliento.

La pregunta es sobre el retraso de tiempo. Puede ser un tiempo fijo, pero en algunos casos podemos necesitar un retraso medido desde la última vez. Aquí hay una posible solución:

Retraso medido desde la última vez (despertarse regularmente)

La situación puede ser, queremos hacer algo con la mayor regularidad posible y no queremos molestarnos con todas las cosas de last_time , next_time todo nuestro código.

generador de zumbador

El siguiente código ( sleepy.py ) define buzzergen gerenarator

import time
from itertools import count

def buzzergen(period):
    nexttime = time.time() + period
    for i in count():
        now = time.time()
        tosleep = nexttime - now
        if tosleep > 0:
            time.sleep(tosleep)
            nexttime += period
        else:
            nexttime = now + period
        yield i, nexttime

Invocando buzzergen regular

from sleepy import buzzergen
import time
buzzer = buzzergen(3) # planning to wake up each 3 seconds
print time.time()
buzzer.next()
print time.time()
time.sleep(2)
buzzer.next()
print time.time()
time.sleep(5) # sleeping a bit longer than usually
buzzer.next()
print time.time()
buzzer.next()
print time.time()

y corriendo lo vemos:

1400102636.46
1400102639.46
1400102642.46
1400102647.47
1400102650.47

También podemos usarlo directamente en un bucle:

import random
for ring in buzzergen(3):
    print "now", time.time()
    print "ring", ring
    time.sleep(random.choice([0, 2, 4, 6]))

y ejecutarlo podríamos ver:

now 1400102751.46
ring (0, 1400102754.461676)
now 1400102754.46
ring (1, 1400102757.461676)
now 1400102757.46
ring (2, 1400102760.461676)
now 1400102760.46
ring (3, 1400102763.461676)
now 1400102766.47
ring (4, 1400102769.47115)
now 1400102769.47
ring (5, 1400102772.47115)
now 1400102772.47
ring (6, 1400102775.47115)
now 1400102775.47
ring (7, 1400102778.47115)

Como vemos, este timbre no es demasiado rígido y nos permite recuperar intervalos de sueño regulares incluso si nos quedamos dormidos y salimos del horario habitual.