Hallo Forum,
ich bin in Python leider immer noch ein Rookie.
Wie ich die Systemzeit auslese ist mir mittlerweile bekannt, aber wie kann ich diese sekundlich ausgeben, bzw. abfangen?Also für den Anfang will ich auf der Shell einfach eine Endlosschleife ablaufen lassen in der mir die zeit ausgespuckt wird*G*
mfg
das Rudel Gurken
Systemzeit sekundlich ausgeben
@RudelGurken: Schreib einfach eine Endlosschleife in der die Zeit ausgegeben und eine Sekunde gewartet wird.
Da ich nicht glaube, dass für jede Uhrzeitänderung eine neue Zeile gewünscht ist, kann man die alte Zeit innerhalb einer Schleife folgendermaßen überschreiben:
Das "\r" setzt den Cursor immer wieder auf den Zeilenanfang zurück. Das ".flush()" ist notwendig, weil die neue Ausgabe sonst nicht unmittelbar angezeigt wird.
Code: Alles auswählen
import sys
import time
def show_time():
while True:
current_time = time.strftime('%H:%M:%S')
sys.stdout.write(current_time + '\r')
sys.stdout.flush()
time.sleep(1)
-
- User
- Beiträge: 29
- Registriert: Freitag 24. Mai 2013, 09:51
Hi,
leider passiert gar nichts wenn ich deinen Code ausführe. Aber vielen lieben Dank für eure Hilfe.
mit besten Grüßen
Eure Gurken
leider passiert gar nichts wenn ich deinen Code ausführe. Aber vielen lieben Dank für eure Hilfe.
mit besten Grüßen
Eure Gurken
@RudelGurken: damit etwas passiert, mußt Du snafus Funktion auch aufrufen, z.B. in dem Du die folgenden Zeilen noch anhängst:
Code: Alles auswählen
def main():
show_time()
if __name__ == '__main__':
main()
-
- User
- Beiträge: 29
- Registriert: Freitag 24. Mai 2013, 09:51
Hi,
ja ich habe gerade mit Hilfe eines anderen Tutorials gelesen, dass so in Python Funktionen definiert werden*G*.
Ich habe das ganze jetzt wie folgt gelöst:
Besten Dank. Kann ich hier jetzt noch ein Interrupt einbauen, welches auf Eingaben von Außen reagiert (z.B. Konsolen ausgaben)?
ja ich habe gerade mit Hilfe eines anderen Tutorials gelesen, dass so in Python Funktionen definiert werden*G*.
Ich habe das ganze jetzt wie folgt gelöst:
Code: Alles auswählen
#Zeit in Sekunden ausgeben lassen
#Zeit ausgeben
from time import *
# Zeit in Sekunden
while True:
lt = localtime()
mytime = strftime("Stunde:Minute:Sekunde: %H:%M:%S",lt)
sys.stdout.write(mytime + '\r')
sys.stdout.flush()
@RudelGurken: bitte gewöhn Dir nicht schlechte Gewohnheiten an. Sternchenimporte sind schlecht, weil nicht kontrollierbar ist, was da in den eigenen Namensraum geschaufelt wird. Einrücktiefe sind 4 Leerzeichen pro Ebene. Auf Modulebene sollten keine Befehle stehen, weil dann der Code nicht mehr als Modul ohne Nebeneffekte importiert werden kann.
-
- User
- Beiträge: 29
- Registriert: Freitag 24. Mai 2013, 09:51
Hi,
vielen Dank für deine Hinweise, das mit dem Import habe ich verstanden, ebenso das mit den Leerzeichen (aktuell nutze ich vom Nano (debian) den Tabulator, werde dass dann aber korrigieren). Nur das mit der Modulebene verstehe ich noch nicht ganz*G*.
mit bestem Gruß
vielen Dank für deine Hinweise, das mit dem Import habe ich verstanden, ebenso das mit den Leerzeichen (aktuell nutze ich vom Nano (debian) den Tabulator, werde dass dann aber korrigieren). Nur das mit der Modulebene verstehe ich noch nicht ganz*G*.
mit bestem Gruß
@RudelGurken: um es kurz zu sagen: pack alles in Funktionen und schreib am Ende ein »if __name__ ...« wie in meinem vorherigen Post. Das verhindert, wie gesagt, dass beim Importieren als Modul irgendetwas unvorhergesehenes passiert.
-
- User
- Beiträge: 29
- Registriert: Freitag 24. Mai 2013, 09:51
Okay, mache ich besten Dank!!!