Wie kann ich eine zeitliche Verzögerung in Python machen?


Answers

Sie können die Funktion sleep () im Zeitmodul verwenden. Es kann ein Float-Argument für eine Subsekunden-Auflösung benötigen.

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

Ich würde gerne wissen, wie man ein Python-Skript zeitlich verzögert.




Gute Frage.

Sie können es erhalten, indem Sie einfach Folgendes tun:

from time import sleep

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

Hoffe, ich könnte helfen.




Ein bisschen Spaß mit schläfrigen Generator.

Die Frage betrifft die Zeitverzögerung. Es kann eine feste Zeit sein, aber in einigen Fällen benötigen wir möglicherweise eine seit dem letzten Mal gemessene Verzögerung. Hier ist eine mögliche Lösung:

Verzögerung seit dem letzten Mal gemessen (regelmäßig aufwachen)

Die Situation kann sein, wir wollen etwas so regelmäßig wie möglich machen und wir wollen uns nicht mit den ganzen last_time , next_time Sachen rund um unseren Code next_time .

Summer-Generator

Folgender Code ( sleepy.py ) definiert buzzerngeneratorator

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

Regelmäßig buzzergen aufrufen

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

und es laufen wir sehen:

1400102636.46
1400102639.46
1400102642.46
1400102647.47
1400102650.47

Wir können es auch direkt in einer Schleife verwenden:

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

und wir könnten es sehen:

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)

Wie wir sehen, ist dieser Summer nicht zu starr und erlaubt es uns, regelmäßig schläfrige Intervalle aufzuholen, selbst wenn wir verschlafen und aus dem regulären Zeitplan aussteigen.




Verzögerungen können mithilfe von drei Methoden implementiert werden.

Fangen wir mit dem einfachsten an:

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

Die zweite Methode zur Verzögerung wäre die Verwendung der impliziten Warte-Methode.

 driver.implicitly_wait(5)

Die dritte Methode ist sinnvoller, wenn Sie warten müssen, bis eine bestimmte Aktion abgeschlossen ist oder bis ein Element gefunden wird.

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



Die tkinter-Bibliothek in der Python-Standardbibliothek ist ein interaktives Werkzeug, das Sie importieren können. Im Grunde können Sie Buttons und Boxen und Popups erstellen, die als Fenster angezeigt werden, die Sie mit Code bearbeiten.

Wenn Sie tkinter verwenden, verwenden Sie TIME.SLEEP() da es Ihr Programm TIME.SLEEP() . Das ist mir passiert. Verwenden root.after() stattdessen root.after() und ersetzen Sie die Werte für viele Sekunden durch Millisekunden. ZB ist time.sleep(1) äquivalent zu root.after(1000) in tkinter.

Ansonsten, time.sleep() , worauf viele Antworten hingewiesen haben, ist der time.sleep() Weg.






Links