一尘不染

如何在Python中获得当前的CPU和RAM使用率?

python

在Python中获取当前系统状态(当前CPU,RAM,可用磁盘空间等)的首选方式是什么?* nix和Windows平台的奖励积分。

似乎有几种方法可以从我的搜索中提取出来:

  1. 使用PSI之类的库(目前似乎尚未积极开发并且在多个平台上不受支持)或pystatgrab之类的库(自2007年以来一直没有活动,它似乎也不支持Windows)。
  2. 使用特定于平台的代码,例如os.popen("ps")对于* nix系统使用a 或类似代码,对于Windows平台使用MEMORYSTATUSin ctypes.windll.kernel32(请参见ActiveState上的此配方)。可以将Python类与所有这些代码段放在一起。

并不是说这些方法不好,而是已经有一种受支持的,跨平台的方法来做同样的事情?


阅读 397

收藏
2020-02-16

共1个答案

一尘不染

psutil库将为你提供各种平台上的一些系统信息(CPU /内存使用情况):

psutil是一个模块,提供了一个接口,该接口通过使用Python以可移植的方式检索有关正在运行的进程和系统利用率(CPU,内存)的信息,实现了ps,top和Windows任务管理器等工具提供的许多功能。

它当前支持32位和64位体系结构的Linux,Windows,OSX,Sun Solaris,FreeBSD,OpenBSD和NetBSD,Python版本从2.6到3.5(Python 2.4和2.5的用户可以使用2.1.3版本)。

更新:这是一些示例用法psutil

#!/usr/bin/env python
import psutil
# gives a single float value
psutil.cpu_percent()
# gives an object with many fields
psutil.virtual_memory()
# you can convert that object to a dictionary 
dict(psutil.virtual_memory()._asdict())
2020-02-16