zoukankan      html  css  js  c++  java
  • [Python Study Notes]内存信息

    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    >>文件: 内存信息.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()
    
  • 相关阅读:
    中台入门系列1
    微服务 2.0 技术栈选型手册
    mysql计划任务每天定时执行
    更高效地提高redis client多线程操作的并发吞吐设计
    azure之MSSQL服务性能测试
    .NET Socket服务编程之-高效连接接入编
    轻易实现基于linux或win运行的聊天服务端程序
    零配置Socket TCP消息通讯服务容器EC
    azure存储压测的问题(农码主观意识太强被坑了)
    业务逻辑层缓存应该设计
  • 原文地址:https://www.cnblogs.com/liu66blog/p/8449866.html
Copyright © 2011-2022 走看看