Modul time
in Python nutzen
Über das „Zeit“-Modul können wir Berechnungen mit der Zeit anstellen, aber auch unser Programm für eine definierte Zeit schlafen schicken.
Wie gehabt, muss man bei gewünschter Verwendung das Modul importieren und über dir
erhalten wir einen Überblick über die Möglichkeiten:
import time
print(dir(time))
Und die Ausgabe:
['_STRUCT_TM_ITEMS', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'altzone', 'asctime', 'clock', 'ctime', 'daylight', 'get_clock_info', 'gmtime', 'localtime', 'mktime', 'monotonic', 'monotonic_ns', 'perf_counter', 'perf_counter_ns', 'process_time', 'process_time_ns', 'sleep', 'strftime', 'strptime', 'struct_time', 'time', 'time_ns', 'timezone', 'tzname', 'tzset']
Lassen wir unser Programm für n-Sekunden schlafen gehen. Dann ausgeschlafen erfolgt die zweite Rückmeldung:
import time
print("Ich bin müde und gehe schlafen")
time.sleep(5)
print("habe geschlafen")
Die Angabe bei time.sleep(n)
sind Sekunden. Sollen Millisekunden mitgegeben werden, dann einfach über die Nachkommastelle!
Wir können auch eine Auswertung der Dauer der Programmausführung machen:
import time
print(time.time())
zeitanfang = time.time()
print("Ich bin müde und gehe schlafen")
time.sleep(5)
print("habe geschlafen")
zeitende = time.time()
print("Dauer Programmausführung:",)
print(zeitende-zeitanfang)
Bei der ersten Ausgabe der Zeit über time.time()
erhalten wir eine große Zahl wie z.B. „1579782074.592673“. Diese Zahl stellt die vergangenen Sekunden seit dem 1.1.1970 dar. Damit kann man gut rechnen, wenn man eine Anfangszeit von der Endzeit abzieht, wir im Programm geschehen.
Die Ausgabe:
1579782074.592673
Ich bin müde und gehe schlafen
habe geschlafen
Dauer Programmausführung:
5.000827789306641
Wir sehen, dass unser Programm länger als die 5 Sekunden Schlafenszeit benötigt. Jeder Befehl und jede Ausgabe frisst Zeit, auch wenn es nur Millisekunden sind. Daher die „Nachkommazeit“ im Beispiel von ".000827789306641".
time.time() lesbar über time.asctime()
Zurück zu der großen Zahl, die uns time.time()
auswirft. In unserem letzten Beispiel war das „1579782074.592673“. Nichts, womit ein normaler Mensch etwas anfangen kann (vermute ich mal). Daher gibt es die Methode asctime()
. Wir fragen (kann man sich über das falsch geschriebene „ask“ merken) nach der Zeit und bekommen diese auch für einen Menschen verständlich als Rückmeldung:
import time
print(time.time())
print(time.localasctime())
Und darauf kommt als Rückmeldung:
1579790660.517235
Thu Jan 23 15:44:20 2020
In die gleiche Richtung geht gmtime()
- „gm“ steht für „greenwich meantime“, also die mittlere Sonnenzeit in Greenwich. Und wer sich schon immer mal gefragt hat, warum zur Hölle Greenwich? Greenwich liegt im Südosten von London und dort war früher das Zentrum der britischen Marine und es gibt dort eine Sternwarte.
import time
print(time.gmtime())
Als Rückmeldung bekommen wir:
time.struct_time(tm_year=2020, tm_mon=1, tm_mday=23, tm_hour=14, tm_min=44, tm_sec=22, tm_wday=3, tm_yday=23, tm_isdst=0)
Und von dieser Zeit-Instanz (mal wieder ein Objekt ;)) können wir nun die Einzelteile verwenden. Im Index 0 steckt das Jahr – im Index 6 der Wochentag (gezählt wird ab Montag mit 0 – also bedeutet der Rückgabewert 3, dass es Donnerstag ist)
import time
jetzt = time.gmtime()
print (jetzt[0]). # ergibt das Jahr
print (jetzt[6]) # Wochentag, Montag ist 0, Di = 1 usw.
Und die Rückgabewerte:
2020
3
localtime() – Zeit von eigener Zeitzone nutzen
Anstelle der englischen Zeit ist die eigene Zeitzone meistens nützlicher. Dafür gibt es die Methode localtime()
. Die Rückgabeform ist exakt gleich wie bei gmtime()
.
import time
jetzt = time.localtime()
print(jetzt)