best. Zeit lang warten.

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
marco_
User
Beiträge: 78
Registriert: Freitag 25. März 2005, 12:24

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...
Benutzeravatar
Mr_Snede
User
Beiträge: 387
Registriert: Sonntag 8. Februar 2004, 16:02
Wohnort: D-Dorf, Bo

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
marco_
User
Beiträge: 78
Registriert: Freitag 25. März 2005, 12:24

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.
Benutzeravatar
Mr_Snede
User
Beiträge: 387
Registriert: Sonntag 8. Februar 2004, 16:02
Wohnort: D-Dorf, Bo

marco_ hat geschrieben:Edit: Hab gerade gesehen, dass man während dem doch eine Eingabe machen kann.
Zeig mal wie.
marco_
User
Beiträge: 78
Registriert: Freitag 25. März 2005, 12:24

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...
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
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
Antworten