Pregunta ¿Cómo puedo hacer un retraso en Python?


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


2026
2018-02-04 07:04


origen


Respuestas:


import time
time.sleep(5)   # Delays for 5 seconds. You can also use a float value.

Aquí hay otro ejemplo donde algo se ejecuta aproximadamente una vez por minuto:

import time
while True:
    print("This prints once a minute.")
    time.sleep(60) # Delay for 1 minute (60 seconds).

2254
2018-02-04 07:05



Puedes usar el sleep() función 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.

564
2017-09-15 16:34



Por favor lee https://web.archive.org/web/20090207081238/http://faqts.com/knowledge_base/view.phtml/aid/2609/fid/378, que te puede ayudar más:

Pruebe la función dormir en el módulo de tiempo.

import time
time.sleep(60)

Y pon esto en una while loop y una declaración solo se ejecutarán en   minuto ... Eso le permite ejecutar una declaración a intervalos predefinidos   independientemente de cuánto tiempo lleve el comando (siempre que tome menos de   un minuto o 5 o 60 o lo que sea que lo configures) Por ejemplo, yo quería   ejecuta un ping una vez por minuto. Si solo time.sleep(60) o time.sleep(45)    incluso, el ping no siempre tomará la misma cantidad de tiempo. Aquí esta la   código :)

time.sleep(time.localtime(time.time())[5])

los [5] simplemente saca los segundos de la time.localtime()Regreso   valor.

Lo bueno de time.sleep es que es compatible con punto flotante   ¡números!

import time
time.sleep(0.1) 

http://python.org/doc/current/lib/module-time.html


118
2018-02-04 07:07



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...

55
2018-01-18 18:48



Un poco de diversión con un sueño generador.

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 todo last_time, next_time cosas alrededor de nuestro código.

Generador de zumbador

El siguiente código (sleepy.py) define un buzzergen generador:

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 al ejecutarlo 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 al 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 ponernos al día con intervalos regulares de sueño, incluso si nos quedamos dormidos y salimos del horario habitual.


33
2018-05-14 21:30



¿Cómo puedo hacer un retraso en Python?

En un solo hilo, sugiero la función dormir:

>>> from time import sleep

>>> sleep(4)

Esto realmente suspende el procesamiento del hilo en el que el sistema operativo lo llama, permitiendo que otros hilos y procesos se ejecuten mientras duerme.

Úselo para ese propósito, o simplemente para retrasar la ejecución de una función. Por ejemplo:

>>> def party_time():
...     print('hooray!')
... 
>>> sleep(3); party_time()
hooray!

"¡Hurra!" impreso 3 segundos después de golpear Entrar.

Ejemplo de uso sleep con múltiples hilos y procesos

De nuevo, sleep suspende su hilo - utiliza al lado de la potencia de procesamiento cero.

Para demostrar, cree un script como este (primero intenté esto en un shell interactivo de Python 3.5, pero los subprocesos no pueden encontrar el party_later función por alguna razón):

from concurrent.futures import ThreadPoolExecutor, ProcessPoolExecutor, as_completed
from time import sleep, time

def party_later(kind='', n=''):
    sleep(3)
    return kind + n + ' party time!: ' + __name__

def main():
    with ProcessPoolExecutor() as proc_executor:
        with ThreadPoolExecutor() as thread_executor:
            start_time = time()
            proc_future1 = proc_executor.submit(party_later, kind='proc', n='1')
            proc_future2 = proc_executor.submit(party_later, kind='proc', n='2')
            thread_future1 = thread_executor.submit(party_later, kind='thread', n='1')
            thread_future2 = thread_executor.submit(party_later, kind='thread', n='2')
            for f in as_completed([
              proc_future1, proc_future2, thread_future1, thread_future2,]):
                print(f.result())
            end_time = time()
    print('total time to execute four 3-sec functions:', end_time - start_time)

if __name__ == '__main__':
    main()

Ejemplo de salida de este script:

thread1 party time!: __main__
thread2 party time!: __main__
proc1 party time!: __mp_main__
proc2 party time!: __mp_main__
total time to execute four 3-sec functions: 3.4519670009613037

Multihilo

Puede activar una función que se llamará en un momento posterior en un hilo separado con el Timerobjeto de enhebrado:

>>> from threading import Timer
>>> t = Timer(3, party_time, args=None, kwargs=None)
>>> t.start()
>>>
>>> hooray!

>>> 

La línea en blanco ilustra que la función impresa a mi estándar fuera y tuve que golpear Entrar para asegurarme de que estaba en un aviso.

La ventaja de este método es que, mientras Timer hilo estaba esperando, pude hacer otras cosas, en este caso, golpear Entrar una vez, antes de que se ejecute la función (vea el primer aviso vacío).

No hay un objeto respectivo en la biblioteca de multiprocesamiento. Puede crear uno, pero probablemente no exista por algún motivo. Un sub-hilo tiene mucho más sentido para un temporizador simple que un subproceso completamente nuevo.


21
2018-06-21 03:25



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 va a ensuciar tu programa. Esto me pasó a mí. En cambio, usa root.after() y reemplace los valores por muchos segundos, en milisegundos. P.ej, time.sleep(1) es equivalente a root.after(1000) en tkinter.

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


20
2018-02-28 19:45



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'))

11
2018-01-05 10:41



Para poner un retraso de tiempo debe importar el time módulo. Y con ese módulo solo necesitas escribir:

time.sleep(The amount of time)

Por ejemplo, si desea poner un retraso de un segundo antes de que la computadora ejecute otra línea, debe poner:

time.sleep(1)
print('Hello, World!')

Eso es todo :)


9
2017-07-04 10:55



Los retrasos se hacen con el biblioteca de tiempo, específicamente el tiempo de dormir() función...

Para hacer que espere un segundo:

from time import sleep
sleep(1)

Esto funciona porque al hacerlo:

from time import sleep

usted extrae el función de dormir  solamente desde el biblioteca de tiempo lo que significa que solo puede llamarlo con:

sleep(seconds)

en lugar de tener que escribir

time.sleep()

que es torpemente largo para escribir.

Con este método, no tendrías acceso a las otras características del biblioteca de tiempo y no puedes tener una variable llamada dormir. Pero podrías crear una variable llamada tiempo.

Obra de [library] import [function] (, [function2]) es genial si solo quieres ciertas partes de un módulo.

También podrías hacerlo como

import time
time.sleep(1)

y tendrías acceso a las otras características del biblioteca de tiempo me gusta time.clock() siempre y cuando escribas hora.función, pero no se pudo crear la variable tiempo.


6
2018-06-13 19:04