如何在Python中获取当前的CPU和RAM使用率?在Python中获取当前系统状态(当前CPU,RAM,可用磁盘空间等)的首选方法是什么?* nix和Windows平台的奖励积分。似乎有一些可能的方法从我的搜索中提取:使用像PSI这样的库(目前似乎没有积极开发并且在多个平台上不受支持)或像pystatgrab这样的东西(自2007年以来再没有活动似乎也不支持Windows)。使用特定于平台的代码,例如os.popen("ps")在* nix系统中使用或类似代码,以及MEMORYSTATUS在Windows平台上使用ctypes.windll.kernel32(参见ActiveState上的此配方)。可以将Python类与所有这些代码片段放在一起。并不是说这些方法很糟糕,但是已经有一个支持良好的多平台方式来做同样的事情了吗?
3 回答

慕斯709654
TA贡献1840条经验 获得超5个赞
使用psutil库。在Ubuntu 18.04上,从1-30-2019开始,pip安装了5.5.0(最新版本)。较旧的版本可能会有所不同。您可以通过在Python中执行此操作来检查您的psutil版本:
from __future__ import print_function # for Python2import psutilprint(psutil.__version__)
获取一些内存和CPU统计信息:
from __future__ import print_functionimport psutilprint(psutil.cpu_percent())print(psutil.virtual_memory()) # physical memory usageprint('memory % used:', psutil.virtual_memory()[2])
所述virtual_memory
(元组)将具有使用全系统的百分比存储器。在Ubuntu 18.04上,我似乎高估了几个百分点。
您还可以获取当前Python实例使用的内存:
import osimport psutil pid = os.getpid()py = psutil.Process(pid)memoryUse = py.memory_info()[0]/2.**30 # memory use in GB...I thinkprint('memory use:', memoryUse)
它给出了Python脚本当前内存的使用。

慕桂英4014372
TA贡献1871条经验 获得超13个赞
仅适用于Linux:仅使用stdlib依赖的RAM使用的单行:
import os tot_m, used_m, free_m = map(int, os.popen('free -t -m').readlines()[-1].split()[1:])
添加回答
举报
0/150
提交
取消