如何在Python中获取可用内存(RAM)?有没有更稳定的实现方案?
解决方案
方案1:使用psutil库(最稳定)
psutil是Python生态中被广泛使用的系统信息获取库,原生支持跨平台获取CPU、内存、磁盘、网络等各类系统指标,无需手动解析系统命令输出,兼容性极强。
安装命令:pip install psutil
示例代码:
import psutil # 获取内存统计对象 memory = psutil.virtual_memory() # 转换为人类可读的GB单位,和free -ht输出格式对齐 used_memory_gb = round(memory.used / (1024 ** 3), 1) print(f"{used_memory_gb}G") # 如果你需要和free命令完全一致的1000进制单位,把1024换成1000即可: # used_memory_gb = round(memory.used / (1000 ** 3), 1)
除了已用内存外,你还可以直接获取memory.total(总内存)、memory.available(可用内存)、memory.percent(内存使用率)等字段,按需取用即可。
方案2:原生Python实现(无第三方依赖)
如果不想安装额外依赖,也可以优化原有的命令解析逻辑,不要使用硬编码的字符串切片,改为按字段解析即可,适配性远高于切片方案:
from os import popen # 读取free命令输出,按行拆分 free_output = popen("free -ht").readlines() # 取第二行的内存统计数据,按空白字符拆分后过滤空值 mem_fields = [field for field in free_output[1].split() if field] # 第三个字段即为已用内存,直接输出即可和原需求的2.4G格式完全一致 print(mem_fields[2])
内容的提问来源于stack exchange,提问作者s0n0fj0hn
相关产品推荐
相关产品推荐

