1. 程式人生 > >[Python Study Notes]內存信息

[Python Study Notes]內存信息

virtual 內存信息 first 進行 __main__ utl name tabs virt

‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘
>>文件: 內存信息.py
>>作者: liu yang
>>郵箱: [email protected]

‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘

#!/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()

[Python Study Notes]內存信息