如何在OS X上使用Python读取系统信息?

问题描述:

OS-agnostic question开始,特别是this response,类似于Linux上/ proc/meminfo等数据,我如何使用Python从OS X读取系统信息(包括但不限于内存使用情况)。如何在OS X上使用Python读取系统信息?

我做了更多的Google搜索(寻找“OS X/proc”) - 它看起来像sysctl命令可能是你想要的,但我不知道它是否会给你所有你需要的信息。这里的手册页:http://developer.apple.com/DOCUMENTATION/Darwin/Reference/ManPages/man8/sysctl.8.html

另外,wikipedia

您可以通过命令行实用程序sysctlvm_stat得到大量的系统信息(以及ps,如this question

如果你没有找到更好的方法,你可以随时拨打这些使用subprocess

可以从平台模块获得真正可访问的唯一东西,但它非常有限(cpu,os版本,体系结构等)。对于CPU使用率和正常运行时间,我认为你必须包装命令行实用程序的“正常运行时间”和“vm_stat”。

我建你一个vm_stat,另一种是由你;-)

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() 

这里有一个基于MACFUSE-/ proc文件:

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

如果你有控制你正在运行你的Python程序的盒子可能是一个合理的解决方案。无论如何,最好有一个/ proc来看看!

我正在寻找同样的东西,我注意到这个问题没有被接受的答案。在因为这个问题原本问这段时间,一个Python模块叫做psutil发布:

https://github.com/giampaolo/psutil

内存利用率,您可以使用以下命令:

>>> 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) 
>>> 

对于CPU功能利用率,流程管理,磁盘和网络。模块中唯一的省略是用于检索平均负载的函数,但如果您位于类UNIX系统上,则python stdlib具有os.getloadavg()。

psutil声称支持Linux,Windows,OSX,FreeBSD和Sun Solaris,但我只尝试过OSX小牛和fedora 20.