##language:zh #pragma section-numbers on ''' 自制模块包 ''' ::-- ZoomQuiet [<>] ##[[TableOfContents]] ## 默许导航,请保留 <> = cpu,内存和网络的使用率 = {{{Qiangning Hong hide details 11:29 am (35 minutes ago) reply-to python-cn@googlegroups.com to python-cn@googlegroups.com date Sep 3, 2007 11:29 AM subject [CPyUG:31609] Re: 什么lib可以得到cpu,内存和网络的使用率 mailed-by googlegroups.com On 9/3/07, 边 江 wrote: > 想用python写个得到cpu,内存和网络的使用率的小程序,主要在windows系统中,要是可以跨平台最好不过。 > > 不知道python自带的有没有这个lib,要是没有能不能推荐个lib。 }}} 很久以前写的代码,在windows下获得CPU和内存使用情况: {{{#!python import win32pdh # Counter paths PROCESSOR_PERCENT = r'\Processor(_Total)\% Processor Time' MEMORY_PERCENT = r'\Memory\% Committed Bytes In Use' MEMORY_COMMITTED = r'\Memory\Committed Bytes' PROCESS_BYTES = lambda x: r'\Process(%s)\Private Bytes' % x class Query: def __init__(self): self.counters = {} self.query = None self.query = win32pdh.OpenQuery(None, 0) def add_counter(self, path): if win32pdh.ValidatePath(path) != 0: raise Exception('Invalid path: %s' % path) counter = win32pdh.AddCounter(self.query, path, 0) self.counters[path] = counter def remove_counter(self, path): win32pdh.RemoveCounter(self.counters[path]) del self.counters[path] def get_values(self): values = {} win32pdh.CollectQueryData(self.query) for path in self.counters: status, value = win32pdh.GetFormattedCounterValue( self.counters[path], win32pdh.PDH_FMT_LONG) values[path] = value return values sysinfo_query = Query() sysinfo_query.add_counter(PROCESSOR_PERCENT) sysinfo_query.add_counter(MEMORY_PERCENT) sysinfo_query.get_values() def get_sysinfo(): """Return a tuple (mem_usage, cpu_usage).""" info = sysinfo_query.get_values() return info[MEMORY_PERCENT], info[PROCESSOR_PERCENT] }}}*nix系统下,用管道分析 uptime 和 free 命令的输出就可以了。 ##= 反馈 =