Obtener el tiempo desde el inicio del sistema operativo usando Python

El tiempo de actividad es el tiempo transcurrido desde que se inició el sistema operativo. Los sistemas operativos tienen mecanismos discretos para realizar un seguimiento de este tiempo, que utilizan además para realizar tareas relacionadas con el sistema operativo. Este tiempo es particularmente útil para ciertas aplicaciones tales como:-

  • Aplicaciones de seguimiento de uso
  • Aplicaciones de copia de seguridad
  • Aplicaciones antivirus

 En este artículo, veremos los métodos para obtener el tiempo transcurrido desde el inicio del sistema operativo de diferentes sistemas operativos. 

Obtener tiempo de actividad en MAC OS y Linux

Para usuarios de Mac OS y Linux, el método es muy trivial. Existe un comando incorporado ofrecido por la terminal del sistema operativo, que permite la extracción del tiempo de actividad. Estaríamos integrando ese método de línea de comandos en nuestro programa Python.

Python3

# for using os.popen()
import os
 
# sending the uptime command as an argument to popen()
# and saving the returned result (after truncating the trailing \n)
t = os.popen('uptime -p').read()[:-1]
 
print(t)

Producción 

 Up 6 minutes

Cosas a considerar al usar el código anterior:

  • No es necesario que el usuario use os.popen() . Solo se requiere invocar el intérprete de línea de comandos y, por lo tanto, cualquier otro método/función que conduzca al mismo resultado ( subproceso , etc.) podría usarse en su lugar.
  • El -p después del comando uptime es para embellecer la salida, de lo contrario, la salida contiene demasiada información no deseada.

OBTENER TIEMPO DE ACTIVIDAD EN EL SO WINDOWS

Para Windows, usaríamos una función API incorporada que se encuentra en el sistema operativo Windows con el nombre gettickcount64(). Esta función recupera la cantidad de milisegundos que han transcurrido desde que se inició el sistema. 

Python3

# ctypes required for using GetTickCount64()
import ctypes
 
# getting the library in which GetTickCount64() resides
lib = ctypes.windll.kernel32
 
# calling the function and storing the return value
t = lib.GetTickCount64()
 
# since the time is in milliseconds i.e. 1000 * seconds
# therefore truncating the value
t = int(str(t)[:-3])
 
# extracting hours, minutes, seconds & days from t
# variable (which stores total time in seconds)
mins, sec = divmod(t, 60)
hour, mins = divmod(mins, 60)
days, hour = divmod(hour, 24)
 
# formatting the time in readable form
# (format = x days, HH:MM:SS)
print(f"{days} days, {hour:02}:{mins:02}:{sec:02}")

Producción

0 days, 3:09:04

El resultado anterior indica que este sistema está funcionando durante 3 horas, 9 minutos y 4 segundos (0 días). Si el sistema se utilizaría durante más de un día (u horas = 24+), las horas volverán a 0 y los días se incrementarán. 

Cosas a considerar al ejecutar el código anterior:

  • gettickcount64()  no funciona correctamente si la suspensión híbrida está habilitada como mecanismo de apagado en su sistema operativo.
  • El programa solo funcionará en la versión de python >= 3.x, debido a la inclusión de f-strings. Para usar esto en python 2, cambie las strings f a str.format() o formato %.
  • gettickcount64() incluye el tiempo transcurrido durante la hibernación o suspensión. 

Publicación traducida automáticamente

Artículo escrito por VasuDev4 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *