python 统计单个核cpu使用率
# -*- coding: cp936 -*- import re,timedef _read_cpu_usage():
"""Read the current system cpu usage from /proc/stat"""
statfile = "/proc/stat"
cpulist = []
try:
f = open(statfile, 'r')
lines = f.readlines()
except:
print "error:无法打开文件%s,系统无法继续运行。" % (statfile)
return []
for line in lines:
tmplist = line.split()
if len(tmplist) < 5:
continue
for b in tmplist:
m = re.search(r'cpu\d+',b)
if m is not None:
cpulist.append(tmplist)
f.close()
return cpulist
def get_cpu_usage():
cpuusage = {}
cpustart = {}
cpuend = {}
linestart = _read_cpu_usage()
if not linestart:
return 0
for cpustr in linestart:
usni=long(cpustr)+long(cpustr)+long(cpustr)+long(cpustr)+long(cpustr)+long(cpustr)+long(cpustr)
usn=long(cpustr)+long(cpustr)+long(cpustr)
cpustart] = str(usni)+":"+str(usn)
sleep = 2
time.sleep(sleep)
lineend = _read_cpu_usage()
if not lineend:
return 0
for cpustr in lineend:
usni=long(cpustr)+long(cpustr)+long(cpustr)+long(cpustr)+long(cpustr)+long(cpustr)+long(cpustr)
usn=long(cpustr)+long(cpustr)+long(cpustr)
cpuend] = str(usni)+":"+str(usn)
for line in cpustart:
start = cpustart.split(':')
usni1,usn1 = float(start),float(start)
end = cpuend.split(':')
usni2,usn2 = float(end),float(end)
cpuper=(usn2-usn1)/(usni2-usni1)
cpuusage = int(100*cpuper)
return cpuusage
if __name__ == '__main__':
a = get_cpu_usage()
print a
页:
[1]