从这个OS-agnostic question开始,特别是this response,类似于Linux上/ proc / meminfo之类的数据,如何使用Python从OS X读取系统信息(包括但不是限于内存使用)。
答案 0 :(得分:3)
您可以从命令行实用程序sysctl
和vm_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。