如何在OS X上读取Python中的系统信息?

时间:2009-01-22 00:08:20

标签: python macos operating-system

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

5 个答案:

答案 0 :(得分:3)

您可以从命令行实用程序sysctlvm_stat(以及ps获取大量系统信息,如this question中所示。)

如果找不到更好的方法,可以随时使用subprocess调用这些方法。

答案 1 :(得分:3)

平台模块提供了唯一可以很好地访问的东西,但它非常有限(cpu,os版本,架构等)。对于CPU使用和正常运行时间,我认为你必须包装命令行实用程序'uptime'和'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()

答案 2 :(得分:2)

我做了一些谷歌搜索(寻找“OS X / proc”) - 看起来sysctl命令可能是你想要的,虽然我不确定它是否会提供你需要的所有信息。这是联机帮助页:http://developer.apple.com/DOCUMENTATION/Darwin/Reference/ManPages/man8/sysctl.8.html

另外,wikipedia

答案 3 :(得分:0)

这是一个基于MacFUSE的/ proc fs:

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

如果你控制了你正在运行你的python程序的盒子,那么这可能是一个合理的解决方案。无论如何,有一个/ proc可以看看!

答案 4 :(得分:0)

我正在寻找同样的事情,我注意到这个问题没有被接受的答案。在问题最初被问到的那段时间里,一个叫做psutil的python模块被发布了:

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 mavericks和fedora 20。