Cómo detener la ejecución después de cierto tiempo en Python – Resuelto

¿Cómo detener la ejecución después de cierto tiempo en Python?

En ocasiones, es útil poder detener la ejecución de un programa después de cierto tiempo transcurrido. En Python, hay varias formas de lograr esto, ya sea utilizando la función `sleep` del módulo `time` o utilizando la función `timeout` del módulo `signal`.

Utilizando la función sleep del módulo time

La función `sleep` del módulo `time` nos permite pausar la ejecución de un programa durante un determinado número de segundos. Podemos utilizar esta función para detener la ejecución después de cierto tiempo transcurrido. A continuación, se muestra un ejemplo de cómo hacerlo:

import time

# Detener la ejecución después de 5 segundos

time.sleep(5)

print("La ejecución se detiene después de 5 segundos")

En este ejemplo, el programa se pausará durante 5 segundos antes de imprimir el mensaje «La ejecución se detiene después de 5 segundos».

Utilizando la función timeout del módulo signal

Otra forma de detener la ejecución después de cierto tiempo en Python es utilizando la función `timeout` del módulo `signal`. Esta función nos permite establecer un temporizador que interrumpirá la ejecución del programa después de cierto tiempo transcurrido. A continuación, se muestra un ejemplo de cómo hacerlo:

import signal

# Función para manejar la señal de timeout

def handler(signum, frame):

raise TimeoutError

# Establecer un temporizador de 5 segundos

signal.signal(signal.SIGALRM, handler)

signal.alarm(5)

try:

# Código que se ejecutará antes del timeout

print("Ejecutando código antes del timeout")

except TimeoutError:

print("La ejecución se detiene después de 5 segundos")

En este ejemplo, se establece un temporizador de 5 segundos utilizando la función `alarm` de `signal`. Si el código dentro del bloque `try` no se completa antes de que transcurran los 5 segundos, se lanzará una excepción `TimeoutError` que podemos capturar y manejar adecuadamente.

En resumen, detener la ejecución después de cierto tiempo en Python es posible utilizando tanto la función `sleep` del módulo `time` como la función `timeout` del módulo `signal`. Ambas opciones nos permiten controlar el tiempo de ejecución de nuestro programa de manera efectiva.