Du liest:
Python sleep: Skripte in Python pausieren

Python sleep: Skripte in Python pausieren

von Patrick
31.05.2020
Jetzt Python programmieren lernen

Manchmal müssen wir unsere Skripte für einen gewissen Zeitraum pausieren. Um das zu erreichen, können wir die Python sleep Funktion aus dem timer Modul verwenden.

1. Python Programm mit sleep pausieren

Mit sleep kannst du dafür sorgen, dass dein Skript für die angegebene Anzahl an Sekunden pausiert wird. Um diese zu verwenden, musst du sie aus dem Modul timer importieren, oder das Modul timer direkt importieren. Im folgenden Beispiel nutze ich noch die Funktion ctime um eine gut lesbare Zeitangabe zu produzieren.

import time

print(time.ctime())
time.sleep(3)
print(time.ctime())
Sat May 30 20:22:49 2020
Sat May 30 20:22:52 2020

Du kannst die Zeit auch Millisekundengenau übergeben. 100 Millisekunden werden beispielsweise als 0.1 dargestellt.

2. Threads mit sleep koordinieren

Falls du mit threading arbeitest, kannst du sleep verwenden, um die Ausführung verschiedener Threads besser zu koordinieren. Wenn du sleep hier anwendest, wird ein anderer Thread ausgeführt. Im folgenden Beispiel werden 2 Threads mit unterschiedlichen Werten für sleep erstellt und gestartet.

import time
from threading import Thread

class Thread1(Thread):
    def run(self):
        for i in range(1, 9):
            print(i, time.ctime())
            time.sleep(1)

class Thread2(Thread):
    def run(self):
        for i in range(10, 13):
            print(i, time.ctime())
            time.sleep(3)

print("Thread1")
Thread1().start()
print("Thread2")
Thread2().start()
print("Fertig")
Thread1
Thread2
Fertig
1 Sat May 30 21:45:50 2020
10 Sat May 30 21:45:50 2020
2 Sat May 30 21:45:51 2020
3 Sat May 30 21:45:52 2020
11 Sat May 30 21:45:53 2020
4 Sat May 30 21:45:53 2020
5 Sat May 30 21:45:54 2020
6 Sat May 30 21:45:55 2020
12 Sat May 30 21:45:56 2020
7 Sat May 30 21:45:56 2020
8 Sat May 30 21:45:57 2020

Nachdem Thread1 ausgeführt wurde, wartet dieser für 1 Sekunde auf Thread2. Dieser wiederum gibt nach einer Ausführung die Kontrolle an Thread1 für 3 Sekunden zurück. Dieser Kreislauf wiederholt sich bis zum Ende der Ausführung.

3. Fazit

Die Ausführung deines Skriptes mit sleep zu pausieren ist sehr einfach. Weiterhin kannst du mit der Funktion auch die Ausführung deiner Threads genauer beeinflussen.

Wenn du noch Fragen oder Anmerkungen hast, schreibe es mir bitte in die Kommentare.

Das könnte dich auch interessieren