手机
当前位置:查字典教程网 >脚本专栏 >python >Linux下使用python调用top命令获得CPU利用率
Linux下使用python调用top命令获得CPU利用率
摘要:本文定位:想通过python调用top命令获取cpu使用率但暂时没有思路的情况。如果单纯为了获得cpu的利用率,通过top命令重定向可以轻松...

本文定位:想通过python调用top命令获取cpu使用率但暂时没有思路的情况。

如果单纯为了获得cpu的利用率,通过top命令重定向可以轻松实现,命令如下:

复制代码 代码如下:

top -bi > cpuHistory.log

复制代码 代码如下:

top -bi | tee cpuHistory.log

这个就不解释了,不懂的朋友查询下top的帮助文档。这里要实现的是通过python调用top命令,并获得cpu的利用率信息。

用过popen的朋友很快就能想到类似如下的代码(这个是我第一次写的代码,*_*):

复制代码 代码如下:

#! /usr/bin/python

import os,time

time2sleep = 1.5

while True:

print os.popen('top -bi -n 1').read().split('n')[2]

time.sleep(time2sleep)

原理看起来没错,可是跑起来就出问题了:cpu的idle值一直不变!!!

原因在于执行的命令“top -bi -n 1”:单独执行这个命令,你会发现输出结果中cpu的idle值就是一直不变的。

所以不能这样写……

在终端执行“top -bi -n 2”命令,你会发现第二个值每次都在变化,这个就是我们想要结果。

考虑到时间问题,命令这样写会更好:“top -bi -n 2 -d 0.02”

代码如下:

复制代码 代码如下:

#! /usr/bin/python

'''

File : cpuRate.py

Author : Mike

E-Mail : Mike_Zhang@live.com

'''

import os,time

time2sleep = 2.5

while True:

print int(time.time()),

print os.popen('top -bi -n 2 -d 0.02').read().split('nnn')[1].split('n')[2]

time.sleep(time2sleep)

执行效果如下:

复制代码 代码如下:

$ ./cpuRate.py

1328109437 Cpu(s): 10.0%us, 20.0%sy, 0.0%ni, 70.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

1328109441 Cpu(s): 0.0%us, 16.7%sy, 0.0%ni, 83.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

1328109444 Cpu(s): 0.0%us, 16.7%sy, 0.0%ni, 83.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

1328109447 Cpu(s): 12.5%us, 12.5%sy, 0.0%ni, 75.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

好,就这些了,希望对你有帮助。

【Linux下使用python调用top命令获得CPU利用率】相关文章:

c++生成dll使用python调用dll的方法

python 文件和路径操作函数小结

python获得图片base64编码示例

pydev使用wxpython找不到路径的解决方法

python聊天程序实例代码分享

使用BeautifulSoup爬虫程序获取百度搜索结果的标题和url示例

使用python在校内发人人网状态(人人网看状态)

用python登录Dr.com思路以及代码分享

python调用cmd命令行制作刷博器

python 输出一个两行字符的变量

精品推荐
分类导航