>> 文件: 内存信息. py
>> 作者: liu yang
>> 邮箱: liuyang0001@outlook.com
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- import sys,os
- import psutil
将 bytes 数转换成更加直观的符号显示
def bytes2symbols(bytes_value):
单位符号
symbols = (K ,M, G, T, P, E, Z, Y)
每个单位对应的 bytes 数的字典, 先定义为空
prefix={}
要得到这样的 {K:1024, M:1024*1024,G:1024**3}, 进行 for 循环
- for i,s in enumerate(symbols):
- # enumerate() 为列举函数
- # i: 代表下标
- # s: 代表改下标对应的值
- # 取到符号元组的值, 作为 prfix 字典的 key, 根据 key 给 value 进行赋值
- prefix[s]=1024**(i+1)
- # 打印得到的对应字典
- # print(prefix)
- symbols_value=0
- symbol=
- # 循环 prefix 字典, 得到转换值
- for key,value in prefix.items():
- if bytes_value >=value :
- symbols_value=bytes_value/value
- symbol=key
- # 如果不满足最小的 KB, 则以 B 显示
- elif bytes_value <1024:
- return %0.2fB%bytes_value
- # 返回转换值 (str)
- return %0.2f%sB%(symbols_value,symbol)
- def memory_message():
- nt=psutil.virtual_memory()
- # 得到的数据: svmem(total=8482263040, available=1770676224, percent=79.1, used=6711586816, free=1770676224)
- # print(nt)
- total=bytes2symbols(nt.total)
- available=bytes2symbols(nt.available)
- percent=bytes2symbols(nt.percent)
- used=bytes2symbols(nt.used)
- free=bytes2symbols(nt.free)
- print("内存信息: 总内存:%4s 可使用:%4s 已使用:%4s"%(total,available,used))
- if __name__ == __main__:
- memory_message()
来源: http://www.bubuko.com/infodetail-2499155.html