45321 发表于 2016-5-13 11:13:11

Python:统计系统剩余内存

#!/usr/bin/python

with open('/proc/meminfo') as fd:
    for line in fd:
      if line.startswith('MemTotal'):
            total = line.split()
            continue
      if line.startswith('MemFree'):
            free = line.split()
            break

FreeMem = int(free)/1024.0
TotalMem = int(total)/1024.0
print "FreeMem:"+"%.2f" % FreeMem+'M'
print "TotalMem:"+"%.2f" % TotalMem+'M'
print "FreeMem/TotalMem:"+"%.2f" % ((FreeMem/TotalMem)*100)+'%'

执行结果如下:

说明:
1、with open('/proc/meminfo') as fd: 和 fd=open('/proc/meminfo') 执行的结果一样,都是遍历文件;前者只有在Python 2.6 及后版本才有,后者当打开的文件达到几个G的时候,很消耗内存,而前者没有这个问题。
2、字符串方法:
line.startswith:以什么开头,返回的是布尔值(true/false)
line.split:以空格或者Tab键为分隔,形成一个列表,通过列表索引取值(字符串)
3、“%.2f” 和 "%s" 一样都是格式化字符串输出,前者输出的是保留两位小数点

页: [1]
查看完整版本: Python:统计系统剩余内存