Predpokladam ze tvuj problem neni ten cyklus, ale jak to udelat aby cekani na vstup neblokovalo donekonecna. Zpusobu je vic, co me tak z hlavy napada jako relativne nejjednodussi je nechat si za pet minut dorucit signal z casovace, viz modul signal. Python instaluje implicitni handler ktery vystreli vyjimku KeyboardInterrupt, takze na ukonceni programu nepotrebujes vlastne nic nez zavolat signal.setitimer() a pak si tu vyjimku odchytit. Behem prace casovac vypnes nastavenim na 0. Nebere to v uvahu zastaveni pomoci ^S ale to te predpokladam netrapi. Pokud (az :-) budes chtit neco slozitejsiho, budes potrebovat si prepnout stdin do neblokujiciho modu (O_ASYNC) pomoci modulu fcntl. Pak si budes ale muset sam resit blokovani (neblokujici nekonecna smycka neni dobry napad) a obecne to neni trivialni zalezitost. Hotove neblokujici cteni je nekde v modulu curses. Nevim jestli jde nejak rozumne pouzit bez zbytku curses (initscr() prakticky obrati terminal naruby coz nemam rad), ale jestli chces hybat kurzorem, barvicky apod. tak je curses asi nejlepsi zpusob. Jestli jsi na wydlich tak jsou urcite i jine zpusoby (conio?) ale to tom nic nevim.
remixus79 (Friday 22 October 2010 13:37:06): > Zdravím, > > potreboval by som poradiť. Mám program v ktorom je nekonečný cyklus. > Tento cyklus stale caka na vstup od uzivatela. Potreboval by som to > spraviť tak že by stále čakal na ten vstup ale zároveň by aj > kontroloval čas a ak by užívateľ nič nezadal po 5minútach by sa > vypol. > > > Ďakujem za každú radu. > _______________________________________________ > Python mailing list > Python@py.cz > http://www.py.cz/mailman/listinfo/python _______________________________________________ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python