[Python Study Notes]内存信息

时间:2022-12-27 04:48:52
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
>>文件: 内存信息.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()