Wie kann man bei Python zwei Aktionen in unterschiedlichen Zeitabständen ausführen?
Ich muss für ein Pythonprojekt alle 30 Sekunden Daten, wie etwa Temperatur oder Luftdruck, messen und in eine Datei schreiben. Parallel dazu soll alle 5 Minuten ein Bild aufgenommen werden (und natürlich in einem Verzeichnis gespeichert werden).
Das alles sollte am Ende in einer while-Schleife stehen, mit der ich den Zeitraum angebe (nach 3 Stunden soll das Programm enden).
Meine eigentliche Frage ist nun, wie ich zwei unterschiedliche Zeitabstände (alle 30 Sekunden / alle 5 Minuten) in eine Schleife schreiben kann bzw. ob das überhaupt möglich ist. Mit einer einfachen time.sleep() Anweisung zum Schluss hätte ich ja nur einen in den Code integriert.
2 Antworten
alle 30 Sekunden ... alle 5 Minuten
Na da fällt doch auf, dass sich 5 Minuten gerade durch 30 Sekunden teilen lassen. Also machst du einen "Takt" von 30 Sekunden in deiner Schleife - in jeder Wiederholung machst du die Messungen, und nur alle 10 Wiederholungen machst du auch das mit dem Bild.
Wenn du keine besonders großen Anforderungen an ein exaktes Zeitraster hast reicht das völlig. Noch genauer wird's wenn man die verstrichene Zeit misst und das dann in der sleep-Dauer berücksichtigt, falls die Aktionen nennenswert Zeit brauchen.
schreib in die while schleife zwei if abfragen mit jeweils einem timestamp ist größer gleich
nach jedem ausführen wird der timestamt neu gesetzt . Wenn der timestamt zB. größer gleich 3 Minuten ist, wird er ausgeführt
Danke für die Antwort, bin noch neu in Python bzw. Programmierung allgemein und kannte timestamps bisher nicht :)