raw_input_timeout
Antonio Castro
acastro en ciberdroide.com
Vie Mayo 27 09:40:37 CEST 2005
Pretendo imponer un timeout a una entrada por teclado y pensé
usar signal.alarm() pero parece que raw_input() hace algo raro
con la alarma. El programita que pretendo hacer no devuelve el
control pasado el tiempo establecido aunque si se ve afectado el
resultado por el limite de tiempo.
===================8<-----------------------------------------------
#!/usr/bin/python
# -*- coding: latin1 -*-
import signal
TimeoutExcept= 'Timeout'
def HandlerTimeout(signum, frame):
raise TimeoutExcept
def raw_input_timeout(prompt, timeout):
signal.signal(signal.SIGALRM, HandlerTimeout) # Asociar manejador
signal.alarm(timeout) # Programar la alarma a 'timeout' segundos.
try:
print ("Timeout in %d sec." % timeout)
x=raw_input(prompt)
except:
return ''
signal.alarm(0) # Desactivar la alarma
return x
x=raw_input_timeout("Nombre : ", 5)
print "<%s>" % x
===================8<-----------------------------------------------
--
Un saludo
Antonio Castro
/\ /\
\\W//
_|0 0|_
+-oOOO-(___o___)-OOOo---------------------+
| . . . . U U . Antonio Castro Snurmacher |
| . . . . . . . acastro en ciberdroide.com |
+()()()---------()()()--------------------+
Más información sobre la lista de distribución Python-es