Du liest:
Die Python time Bibliothek [mit Codebeispielen]

Die Python time Bibliothek [mit Codebeispielen]

von Pero
31.08.2020

Mit Zeitvariablen zu arbeiten ist in der modernen Entwicklung von Software immer wichtiger geworden. Dafür gibt es mehrere Gründe, wie das Koordinieren von Events oder Markieren von Ereignissen mit Zeitstempeln.
Die Verwendung von Zeitfunktion unterscheidet sich zwischen den Programmiersprachen deutlich. Python stellt dafür eine extra Bibliothek bereit. Die Bibliothek wird Python time genannt. In diesem Artikel werden wir besprechen, wie man die Bibliothek und die enthaltenen Funktionen nutzt.

Die Epoche – Der Startpunkt der Python time Messung

Bevor wir mit der eigentlichen Bibliothek starten, sollten wir die Bedeutung der „Epoche“ verstehen.

Ganz einfach gesagt, beschreibt die Epoche, von welchem Zeitpunkt die Zeit des Computers gemessen wird. Für POSIX und UNIX, liegt der Zeitpunkt am 1. Januar 1970. Für Windows NT wiederrum liegt die Startzeit am 1. Januar 1601.

Die Epoche des Systems kann man mittels der gmtime()-Funktion aus der time-Bibliothek ermitteln.

import time
time.gmtime(0)
Die Epoche auf einem Python POSIX / UNIX-System.
Wie zu sehen ist, läuft das System unter UNIX / POSIX.

Die Funktion gibt eine struct_time()-Funktion zurück. Wenn wir uns den Inhalt genau anschauen, könne wir auch unser bereits angesprochenes Datum wiederfinden.

Importieren der Python time Bibliothek oder einzelner Funktionen

Es gibt zwei verschiedene Wege eine Bibliothek in Python zu importieren.

Bei der Ersten könne wir ganz einfach den import-Befehl verwenden.

import time

Die Funktionen aus der Bibliothek können wir dann wie folgt nutzen.

import time
time.gmtime()

Im zweiten Fall können wir nur die von uns benötigten Funktionen importieren.

from time import gmtime

Da wir mit diesem Ausdruck die gmtime()-Funktion direkt importieren, können wir diese auch ohne time nutzen.

from time import gmtime
gmtime()

Wir können also entweder die ganze Bibliothek importieren oder nur spezifische Funktionen. Dabei ist entscheidend ob wir nur eine Funktion oder eine Bandbreite an Funktionen aus der Bibliothek benötigen.

time()-Funktion

Die time()-Funktion gibt uns die verstrichenen Sekunden seit der „Epoche“, also der Startzeit des Systems, aus.

from time import time
time_1 = time()

Lasst uns einen Blick auf die Ausgabe werfen.

Die Python time-Funktion der Python time Bibliothek.

So können wir die insgesamt verstrichenen Sekunden erhalten und im Nachhinein mit ihnen arbeiten.

ctime()-Funktion

Mittels der ctime()-Funktion können wir die Sekunden aus der time()-Funktion in einen für uns lesbaren String umwandeln.

from time import time, ctime
time_1 = time()
time_2 = ctime(time_1)

Zunächst nutzen wir die time()-Funktion um die verstrichenen Sekunden zu erhalten. Dann übergeben wir diese an die ctime()-Funktion.

Mit ctime() können wir die Sekunden aus der time Funktion in einen lesbaren String umwandeln.

Der String ist dann wie folgt aufgebaut:

  • Tag: Tue (Tuesday)
  • Monat: Jun (June)
  • Tag: 30
  • Stunden:Minuten:Sekunden : 14:17:11 (24-Stündig)
  • Jahr: 2020

Den String nennt man im allgemeinen dann Zeitstempel.

sleep()-Funktion

Die sleep()-Funktion ist wahrscheinlich eine der wichtigsten Funktionen. Mit ihr können wir das Programm zur Laufzeit mit einer durch uns vorgegebenen Zeit pausieren.

from time import sleep
print("Before sleep method")
sleep(4)
print("After 4 seconds")

Zuerst wird die erste print()-Funktion aufgerufen. Danach wird mittels der sleep()-Funktion das Programm für vier Sekunden gestoppt. Im Anschluss wird dann auch die zweite print()-Funktion ausgeführt.

gmtime()- und localtime()-Funktion

Am Anfang haben wir die gmtime()-Funktion bereits verwendet um unsere Epoche herauszufinden.

Schauen wir uns dafür noch einmal den Quellcode an.

import time
time.gmtime(0)

Wir haben in dem Fall eine 0 als Argument übergeben.

Das Argument gibt dabei vor, welche Menge von Sekunden im struct_time() angezeigt werden soll.

Die gmtime()-Funktion.

Wie wir sehen, wandelt die Funktion die Anzahl an Sekunden in ein Struct mit den Angaben eines Zeitstempel um. In diesem Fall ist bei 0 Sekunden unsere Epoche.

Wir können die Funktion allerdings auch mit der heutigen Zeit bzw. Menge an Sekunden nutzen.

from time import time, gmtime
time_1 = time()
time_2 = gmtime(time_1)

Die time()-Funktion gibt uns wieder die Anzahl der verstrichenen Sekunden seit der Epoche aus. Diese werden als Argument an die gmtime()-Funktion übergeben.

Die gmtime()-Funktion in Kombination mit der time()-Funktion.
from time import time, localtime
time_1 = time()
time_2 = localtime(time_1)

Die Herangehensweise ist gleich zur gmtime()-Funktion.

Die Nutzung der integrierten localtime-Methode.

Jetzt haben wir ein Struct, in dem die Zeit zu der unseres Computers passt.

asctime()-Funktion

Die asctime()-Funktion ist dazu da, die Zeit, ähnlich der ctime()-Funktion, als String auszugeben. Dabei werden jedoch nicht die verstrichenen Sekunden, sondern ein Struct mit den Zeitstempelangaben übergeben. Alternativ kann auch ein Tuple mit den Angaben übergeben werden.

Der üblichste Weg ist dabei die Variante mit dem Tuple.

tup = (2020, 6, 30, 16, 47, 5, 1, 182, 0)

In dem Tuple stehen die 2020 für das Jahr, die 6 für den Monat, die 30 für den Tag, die 16 für die Stunden, die 47 für die Minuten, die 5 für die Sekunden, die 1 für den Wochentag und die 182 für den entsprechenden Tag im Jahr. Außerdem wird, im Beispiel die 0, eine Markierung für „Tageslicht“ übergeben.

from time import asctime
tup = (2020, 6, 30, 16, 47, 5, 1, 182, 0)
time_1 = asctime(tup)

Wichtig ist, dass die Reihenfolge der Werte im Tuple richtig ist.

Zusammenfassung – Das Python time Modul

Die Funktion rund um die Zeit ist ein wichtiger Bestandteil der modernen Programmierung. Deshalb bietet Python für diesen Bereich eine extra Bibliothek.

Die time-Bibliothek bietet zahlreiche Funktionen rund um Zeit- und Datumsangaben, die in diesem Artikel besprochen werden.



Bislang gibt es keine Kommentare. Markier dein Revier und sei der Erste!

Schreibe einen Kommentar

Das könnte dich auch interessieren