tutorial poner imagen examples español desde cero python operating-system

python - poner - tutorial django



¿Cómo puedo devolver la información del sistema en Python? (7)

Usando Python, ¿cómo se puede devolver información como uso de CPU, uso de memoria (gratis, usado, etc.), conteo de procesos, etc. de manera genérica para que el mismo código pueda ejecutarse en Linux, Windows, BSD, etc.?

Alternativamente, ¿cómo podría devolverse esta información en todos los sistemas anteriores con el código específico de ese sistema operativo que se ejecuta solo si ese sistema operativo es efectivamente el entorno operativo?



En lo que respecta a multiplataforma: la mejor opción es escribir un código específico de la plataforma y luego importarlo condicionalmente. p.ej

import sys if sys.platform == ''win32'': import win32_sysinfo as sysinfo elif sys.platform == ''darwin'': import mac_sysinfo as sysinfo elif ''linux'' in sys.platform: import linux_sysinfo as sysinfo #etc print ''Memory available:'', sysinfo.memory_available()

Para recursos específicos, como señala Anthony, puede acceder a /proc en Linux. Para Windows, podría echar un vistazo en el Repositorio de Microsoft Script . No estoy seguro de dónde obtener ese tipo de información en Macs, pero puedo pensar en un gran sitio web donde puedes preguntar :-)


En un entorno Linux, puede leer desde el sistema de archivos / proc.

~$ cat /proc/meminfo MemTotal: 2076816 kB MemFree: 130284 kB Buffers: 192664 kB Cached: 1482760 kB SwapCached: 0 kB Active: 206584 kB Inactive: 1528608 kB HighTotal: 1179484 kB HighFree: 120768 kB LowTotal: 897332 kB LowFree: 9516 kB SwapTotal: 2650684 kB SwapFree: 2650632 kB Dirty: 64 kB Writeback: 12 kB AnonPages: 59668 kB Mapped: 22008 kB Slab: 200744 kB PageTables: 1220 kB NFS_Unstable: 0 kB Bounce: 0 kB CommitLimit: 3689092 kB Committed_AS: 263892 kB VmallocTotal: 114680 kB VmallocUsed: 3604 kB VmallocChunk: 110752 kB


Existe el proyecto PSI (Información del sistema de Python) con ese objetivo, pero aún no cubren Windows.

Probablemente pueda usar PSI y recpies como este y crear una biblioteca básica que satisfaga sus necesidades.


Parece que desea obtener mucha más información de la que ofrece la biblioteca estándar de Python. Si yo fuera tú, descargaría el código fuente de ''ps'' o ''top'', o la versión de Gnome / KDE del mismo, o cualquier número de programas de monitoreo / gráficos del sistema que tengan más probabilidades de tener todo el cruce de Unix necesario bits de plataforma, ver lo que hacen y luego realizar las llamadas nativas necesarias con ctypes.

Es trivial detectar la plataforma. Por ejemplo, con ctypes puede intentar cargar libc.so, si eso arroja una excepción intente cargar ''msvcrt.dll'', etc. Sin mencionar simplemente verificar el nombre del sistema operativo con os.name. A continuación, solo delegue llamadas a su nueva API multiplataforma a la implementación específica de la plataforma (lo siento).

Cuando hayas terminado, no te olvides de subir el paquete resultante a pypi.



psutil debe proporcionar lo que necesita:

[...] biblioteca multiplataforma para recuperar información sobre procesos en ejecución y utilización del sistema (CPU, memoria, discos, red) [...]

[...] es compatible con Linux, Windows, OSX, FreeBSD y Sun Solaris, tanto en arquitecturas de 32 bits como de 64 bits [...]