Python Uhrzeit?

4 Antworten

Du musst t innerhalb deiner Schleife aktualisieren. Sonst wird immer nur der alte Stand verglichen.

Aber sowas sollte man sowieso nicht in einem pausen-losen while-Loop machen. Braucht nur unnötig CPU-Ressourcen. Du könntest wenigstens ein time.sleep() einbauen, dann kann die CPU in der Zeit andere Sachen machen.

Aber mach es stattdessen lieber so: https://stackoverflow.com/a/30393162/10686377

Noch besser wäre es, wenn du dein Script zu den gewünschten Zeiten von einem externen Scheduling-Programm ausführen lässt. z.B. mit Cron (Linux) oder Windows Task Scheduler (Windows).

Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf

Angenommen das ist syntaktisch alles korrekt, würde die Uhrzeit in der Schleife nicht aktualisiert werden.

Fuer dein Vorhaben gibt es aber sicher auch effizientere Methoden, als die Schleife die ganze Zeit laufen zu lassen.

Du könntest die Uhrzeit einmal auslesen, und dann die Restzeit berechnen, bis zu dem Zeitpunkt, wo du die Nachricht senden willst. Und dann gibt es in Python sicher sowas wie eine sleep() Funktion wodurch dein Programm für die Restzeit schläft und danach eben die Nachricht ausgibt, wenn die Zeit rum ist.

Die Schleife die ganze Zeit durchlaufen zu lassen würde bedeuten die ganze Zeit volle CPU Auslastung.

  1. muss es heißen: if t == p und nicht if t = p und 2. glaube ich, dass t nicht in dem "Format" aufgebaut ist wie dein p...
Woher ich das weiß:eigene Erfahrung

Bitte kein busy waiting.

Du machst folgendes:

  • Aktuelle Zeit holen
  • Abstand zur Zielzeit berechnen
  • Für die errechnete Zeit schlafen legen

Mehr braucht es eigentlich nicht.

Checke dir Doku, ob die Schlaffunktion vorzeitig abbrechen kann, wenn ja, machste halt trotzdem eine Schleife, in der Du das Prozedere wiederholst.