Tienes pocas opciones. Si desea que la IU funcione dentro de una consola normal (Unix / Linux) (ventana de terminal de texto), entonces usaría la Programación de maldiciones con el módulo Python (de las bibliotecas estándar) o uno de los envoltorios a su alrededor, como: PyPI : Bendiciones, Urwid o npyscreen. La mayoría de estos tienen alguna opción para establecer un tiempo de espera en una o más de sus funciones de entrada de caracteres / teclado.
En la documentación de las bibliotecas estándar de Python hay una alternativa a las maldiciones para obtener pulsaciones de teclas desde una consola de texto documentada aquí: Preguntas frecuentes sobre bibliotecas y extensiones: Obtenga una pulsación de tecla. Sin embargo, eso no ofrece una opción de tiempo de espera. Puede organizar su proceso para enviarse una señal de “ALARMA” después del tiempo de espera deseado; y llame a ese código desde un intento: … excepto … bloque. Aquí hay un ejemplo simple de hacerlo: documentación de Python 2.7.10: señal 17.4.1: ejemplo, aunque usaría algo un poco más como esto:
señal de importación
clase Timeout (RuntimeError): pasar
def handle_alarm (signum, frame):
aumentar el tiempo de espera, “Tiempo de espera agotado”tratar:
key = your_input_function (* your_args)
excepto tiempo de espera:
clave = Ninguno
# haz lo que quieras en el tiempo de espera aquí:
- Tengo 5 años de experiencia en investigación de mercado (análisis de datos y minería). He estado trabajando en las dimensiones de SPSS. Quiero aprender la herramienta R y entrar en el análisis de datos. ¿Cuál sería el camino correcto hacia adelante?
- Había aprendido la guitarra en muy poco tiempo hace dos años. Debido a mi intenso programa de estudios y exámenes de la escuela secundaria, dejé de practicar guitarra. Ahora terminé mi escuela secundaria y ahora estoy de vacaciones, pero me siento avergonzado / avergonzado de aprender a tocar la guitarra ahora. ¿Que puedo hacer?
- Si he revisado drásticamente mi currículum después de enviarlo a los sitios web de la compañía (Facebook, Google, Apple), ¿cuánto tiempo debo esperar antes de enviar el nuevo? ¿Cuánto tiempo permanece el viejo en el archivo?
- ¿Por qué mi batería se agota más rápido cuando tengo WhatsApp abierto?
- El banco Comenity me está acosando en asociación con GameStop. ¿Cuáles son todos los números de llamadas de Comenity para que pueda bloquearlos permanentemente?
(En otras palabras, declara tu propia excepción y atrápala).
Si está hablando de un símbolo del sistema de MS Windows, entonces podría usar algo como:
import msvcrt c = msvcrt.getch () print ‘usted ingresó’, c
… pero eso tampoco ofrece un tiempo de espera; y no sé nada sobre el manejo de señales en MS Windows.
Además de eso, también podría mirar PySDL2 (el reemplazo del PySDL descontinuado – un contenedor de Python alrededor de las “bibliotecas de capa de medios directos simples). Esto sería más adecuado para un sistema de entrada basado en GUI … aunque hay muchos enlaces de biblioteca GUI para Linux (incluidos los del antiguo sistema TkInter o el más nuevo, aunque razonablemente portátil, wxPython y muchos otros).