¿Cómo puedo leer la información del sistema en Python en OS X?

Siguiendo esta pregunta independiente del sistema operativo , específicamente esta respuesta , similar a los datos disponibles de los gustos de / proc / meminfo en Linux, ¿cómo puedo leer la información del sistema desde OS X usando Python (incluido, entre otros, el uso de memoria)?

Puede obtener una gran cantidad de información del sistema de las utilidades de línea de comandos sysctl y vm_stat (así como ps , como en esta pregunta ).

Si no encuentra una mejor manera, siempre puede llamar a estos mediante subprocess .

El único módulo que está realmente accesible está disponible desde el módulo de la plataforma, pero es extremadamente limitado (cpu, versión de sistema operativo, architecture, etc.). Para el uso de la CPU y el tiempo de actividad, creo que tendrá que ajustar el “tiempo de actividad” de las utilidades de línea de comandos y “vm_stat”.

Te construí uno para vm_stat, el otro depende de ti 😉

 import os, sys def memoryUsage(): result = dict() for l in [l.split(':') for l in os.popen('vm_stat').readlines()[1:8]]: result[l[0].strip(' "').replace(' ', '_').lower()] = int(l[1].strip('.\n ')) return result print memoryUsage() 

Hice más búsquedas en Google (buscando “OS X / proc”). Parece que el comando sysctl puede ser lo que quieres, aunque no estoy seguro de que te dé toda la información que necesitas. Aquí está la página del manual: http://developer.apple.com/DOCUMENTATION/Darwin/Reference/ManPages/man8/sysctl.8.html

Además, wikipedia .

Aquí hay un archivo basado en MacFUSE / proc fs:

http://www.osxbook.com/book/bonus/chapter11/procfs

Si tiene el control de las cajas en las que está ejecutando su progtwig python, podría ser una solución razonable. En cualquier caso, es bueno tener un / proc para mirar!

Estaba buscando lo mismo y noté que no había una respuesta aceptada para esta pregunta. en el tiempo intermedio desde que se hizo la pregunta originalmente, se lanzó un módulo de python llamado psutil:

https://github.com/giampaolo/psutil

Para la utilización de la memoria, puede utilizar lo siguiente:

 >>> psutil.virtual_memory() svmem(total=8374149120L, available=2081050624L, percent=75.1, used=8074080256L, free=300068864L, active=3294920704, inactive=1361616896, buffers=529895424L, cached=1251086336) >>> psutil.swap_memory() sswap(total=2097147904L, used=296128512L, free=1801019392L, percent=14.1, sin=304193536, sout=677842944) >>> 

También hay funciones para la utilización de la CPU, la gestión de procesos, el disco y la red. la única omisión del módulo es una función para recuperar el promedio de carga, pero el stdlib de python tiene os.getloadavg () si está en un sistema similar a UNIX.

psutil afirma ser compatible con Linux, Windows, OSX, FreeBSD y Sun Solaris, pero solo he probado los detectores de OSX y Fedora 20.