#-*-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