python只使用了cpu的单核吗_python 统计单个核cpu使用率

# -*- coding: cp936 -*-

import re,time

def _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[1])+long(cpustr[2])+long(cpustr[3])+long(cpustr[5])+long(cpustr[6])+long(cpustr[7])+long(cpustr[4])

usn=long(cpustr[1])+long(cpustr[2])+long(cpustr[3])

cpustart[cpustr[0]] = 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[1])+long(cpustr[2])+long(cpustr[3])+long(cpustr[5])+long(cpustr[6])+long(cpustr[7])+long(cpustr[4])

usn=long(cpustr[1])+long(cpustr[2])+long(cpustr[3])

cpuend[cpustr[0]] = str(usni)+":"+str(usn)

for line in cpustart:

start = cpustart[line].split(':')

usni1,usn1 = float(start[0]),float(start[1])

end = cpuend[line].split(':')

usni2,usn2 = float(end[0]),float(end[1])

cpuper=(usn2-usn1)/(usni2-usni1)

cpuusage[line] = int(100*cpuper)

return cpuusage

if __name__ == '__main__':

a = get_cpu_usage()

print a

执行结果,如截图:

165324928.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值