Seite 1 von 1

best. Zeit lang warten.

Verfasst: Sonntag 1. Mai 2005, 10:54
von marco_
Wie kann man in Python eine Pause realisieren? Sowas wie in der Konsole das "sleep 30"?

Am besten wäre es wenn man Während der Zeit eine Eingabe machen kann, ich hätte nämlihc gerne, dass das Programm 30 Sekunden auf eine Eingabe wartet wenn in den 30 Sekunden keine Eingabe gemacht wurde, dann soll es weiter machen...

Verfasst: Sonntag 1. Mai 2005, 11:17
von Mr_Snede
sleep() unterbricht die Ausführung für die angegebene Anzahl von Sekunden

Code: Alles auswählen

>>> from time import *
>>> for i in range(5):
...     print ctime()
...     sleep(1)
Quelle: Python GE-PACKT Seite 256

cu Sebastian

Verfasst: Sonntag 1. Mai 2005, 11:23
von marco_
Danke, genau das was ich gesucht habe. Nur mit dem Nachteil, dass man während er "schläft" keine Eingabe machen kann.

Edit: Hab gerade gesehen, dass man während dem doch eine Eingabe machen kann.

Verfasst: Sonntag 1. Mai 2005, 11:35
von Mr_Snede
marco_ hat geschrieben:Edit: Hab gerade gesehen, dass man während dem doch eine Eingabe machen kann.
Zeig mal wie.

Verfasst: Sonntag 1. Mai 2005, 13:05
von marco_
Hab mich geirrt. Man kann leider nur eingaben in der interaktiven Umgebung machen, also wenn man python eingibt. Dann wird der Befehl, der während sleep eingegeben wurde, später ausgeführt...

Verfasst: Montag 2. Mai 2005, 12:38
von Leonidas
Du kannst einen weiteren Thread starten (kann leicht kompliziert werden), oder so Späße wie Continuations (persönlich noch nie benutzt) ausprobieren um die Eingaben entgegenzunehmen.

Verfasst: Montag 9. Mai 2005, 18:07
von Gast
marco_ hat geschrieben:Danke, genau das was ich gesucht habe. Nur mit dem Nachteil, dass man während er "schläft" keine Eingabe machen kann.
Wenn Du eine Eingabe haben willst, dann musst Du eine abfragen. Am simpelsten mit raw_input. Das praktische: es wartet jetzt auch ohne time.sleep - allerdings für immer. Mit der Alarmfunktion aus signal kann man es nach einer bestimmten Zeit abbrechen. Könnte aber schwierig werden daraus etwas Vernünftiges zu programmieren, dass den Alarm abstellt, wenn mit der Eingabe begonnen wird. Vielleicht findest Du ja eine Lösung. Tipp: mit dem curses Modul kann man Eingaben (auf der Konsole) buchstabenweise entgegennehmen.

Das signal Modul ist unix-only wenn ich mich recht entsinne. Auf anderen Platformen bleiben dann wohl wirklich nur Threads.

Grüße
Michael