A veces, cuando necesitamos depurar funciones en Python, necesitamos una forma de escribir un código de temporizador rápido para capturar el delta de tiempo y calcular el tiempo que tardó la función en ejecutarse. Este artículo le muestra una manera rápida y fácil de humanizar un intervalo de tiempo / delta de tiempo sin incorporar dependencias o bibliotecas adicionales como Arrow o Humanize.
1 | Elapsed Time: 2 Days, 5 Hours, 7 Minutes, 13 Seconds |

A veces, cuando necesitamos depurar funciones en Python, necesitamos una forma de escribir un código de temporizador rápido para capturar el delta de tiempo y calcular el tiempo que tardó la función en ejecutarse. Como ejemplo:
1 2 3 4 5 6 | from datetime import datetime start = datetime.now() # Then call some long running code or function here end = datetime.now() diff = end - start print diff |
Y esto te da:
1 2 | print diff 123 days, 16 : 48 : 22 |
Ahora la variable "diff" tiene un valor de tipo: timedelta (tiempo transcurrido o intervalo de tiempo en segundos) como se muestra con la función de Python type () a continuación:
1 2 | print type(diff) < class 'datetime.timedelta' > |
Para formatearlo en un formato amigable legible por humanos, puede traer una biblioteca como Arrow o Humanize . No hay nada de malo en estas bibliotecas. De hecho, son dos grandes bibliotecas que utilizo con frecuencia. Pero a veces, solo necesita mostrar el intervalo de tiempo o el delta de tiempo en un formato legible por humanos sin agregar una biblioteca adicional a la mezcla para mostrar el "Tiempo transcurrido" en un formato amigable como este:
1 | Elapsed Time: 2 Days, 5 Hours, 7 Minutes, 13 Seconds |
El siguiente fragmento le proporcionará los resultados que necesita:
1 2 3 4 5 | days = diff.days # Get Day hours,remainder = divmod(diff.seconds, 3600 ) # Get Hour minutes,seconds = divmod(remainder, 60 ) # Get Minute & Second print(f 'Elapsed Time: {days} Days, {hours} Hours, {minutes} Minutes, {seconds} Seconds.' ) |
Salida de muestra:
1 | Elapsed Time: 2 Days, 5 Hours, 7 Minutes, 13 Seconds |
Ejemplo de trabajo completo:
01 02 03 04 05 06 07 08 09 10 11 | from datetime import datetime start = datetime.now() # Then call some long running code or function here end = datetime.now() diff = end - start print type(diff) print diff days = diff.days # Get Day hours,remainder = divmod(diff.seconds, 3600 ) # Get Hour minutes,seconds = divmod(remainder, 60 ) # Get Minute & Second print(f’Elapsed Time: {days} Days, {hours} Hours, {minutes} Minutes, {seconds} Seconds.') |
El truco para este ejemplo / implementación es usar la función divmod en Python. La función divmod () en Python toma dos números y devuelve un par de números (tupla) que consta de su cociente y resto.
Sintaxis:
1 2 3 4 | divmod(x, y) x and y : x is numerator and y is denominator x and y must be non complex Returns tuple (quotient, remainder) |
Ejemplos:
1 2 3 4 5 6 | Input: x = 9 , y = 3 Output: ( 3 , 0 ) # 3 is quotient, 0 is remainder Input: x = 16 , y = 3 Output:( 5 , 1 ) # 5 is quotient, 1 is remainder |
Si encuentra útil este artículo, considere agregarlo a favoritos, suscribirse y / o compartirlo en sus canales sociales favoritos para que otros también puedan encontrar y leer estos artículos. Hago esto por amor y pasión para compartir mis ideas, pensamientos, hallazgos y conocimientos con los demás. Así que cuanto más me ayudes a compartir, más mi contenido puede llegar a otros.
Gracias por ayudar a correr la voz.
¡Encuentra tu pasión e inspiración hoy! ¡Y ayuda a alguien más a encontrar el suyo!
0 Comentarios
Dejanos tu comentario para seguir mejorando!