ptyhon 获取系统情况(系统信息、CPU、内存等)

#-*-coding:gbk—*-
import os
import platform
import psutil


def byteToStr(n):
    symbols=('K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y');
    prefix={};
    for i, s in enumerate(symbols):    
        prefix[s] = 1 << (i+1)*10;
    for s in reversed(symbols):    
        if n >= prefix[s]:    
            value = float(n) / prefix[s];
            return '%.2f %s' % (value, s);
    return '%.2f B' % (n);


def getstate(tip):
    if tip==101:
        cpu_num = '1';
        if 'NUMBER_OF_PROCESSORS' in os.environ:
            cpu_num = os.environ['NUMBER_OF_PROCESSORS']
        return "%s"%cpu_num;
    elif tip==110:
        return str(platform.uname());
    elif tip==111:
        return str(platform.system());
    elif tip==112:
        return str(platform.node());
    elif tip==113:
        return str(platform.release());
    elif tip==114:
        return str(platform.version());
    elif tip==115:
        return str(platform.machine());
    elif tip==116:
        return str(platform.processor());
    elif tip==117:
        return str(platform._supported_dists );
    elif tip==201:
        return str(psutil.cpu_percent(1)) + "%";
    elif tip==301:
        return str(psutil.phymem_usage().percent)+ "%";
    elif tip==302:
        pmem=psutil.phymem_usage();
        cached = getattr(psutil, 'cached_phymem', lambda: 0)();
        buffers = getattr(psutil, 'phymem_buffers', lambda: 0)();
        used = pmem.total - (pmem.free + buffers + cached);
        return "%6s/%s" %(str(int(used / 1024 / 1024)) + "M",str(int(pmem.total / 1024 / 1024))+ "M" );
    elif tip==401:
        tot_state=psutil.network_io_counters();
        return byteToStr(tot_state.bytes_sent);
    elif tip==402:
        tot_state=psutil.network_io_counters();
        return byteToStr(tot_state.bytes_recv);
    elif tip==403:
        tot_state=psutil.network_io_counters();
        return byteToStr(tot_state.packets_sent);
    elif tip==404:
        tot_state=psutil.network_io_counters();
        return byteToStr(tot_state.packets_recv);

if __name__=="__main__":
    print "CPU: "+getstate(101)+"\n";
    print "SYS: "+getstate(110)+"\n";
    print "SYS: "+getstate(111)+getstate(112)+getstate(113)+getstate(114)+getstate(115)+getstate(116)+getstate(117)+"\n";
    print "CPU: "+getstate(201)+"\n";
    print "MEM: "+getstate(301)+"\n";
    print "MEMUSE: "+getstate(302)+"\n";
    print "NET(bytes_sent): "+getstate(401)+"\n";
    print "NET(bytes_recv): "+getstate(402)+"\n";
    print "NET(packets_sent): "+getstate(403)+"\n";
    print "NET(packets_recv): "+getstate(404)+"\n";


其中需要安装psutil的包,下载地址:https://pypi.python.org/pypi/psutil#downloads





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值