本文实例为大家分享了python实时监控cpu的工具,供大家参考,具体内容如下
虽然写的很不完善,但是当练手吧,对于实时监控cpu还是有点用处的,虽然android studio已经提供了一样的功能,但是能够记录并生成成本地csv文件还是比as多一个功能的。
结果图:
直接放源码:
# !_*_coding:utf-8_*_
import re
import os
import wx
import thread
import pychartdir
import csv
class GetCpuStats():
def __init__(self, name):
self.pro_name = name
def startWatch(self):
_shell = 'adb shell top -s cpu -n 1| findstr %s' % self.pro_name
result = os.popen(_shell).read()
return self.getInfo(result)
def getInfo(self, _result):
return [re.findall('(\d+)%', _result), re.findall('K\s(\d+)K', _result)]
class MyFrame(wx.Frame):
flag = False
_label = []
_data = []
_label02 = []
_data02 = []
num = 0
num02 = 0
def __init__(self):
wx.Frame.__init__(self, parent=None, title=u'cpu检测小工具', pos=(700, 100), size=(500, 500))
mPanel = wx.Panel(parent=self)
mSizer = wx.BoxSizer(orient=wx.VERTICAL)
btn_start = wx.Button(parent=mPanel, label=u'开始', style=wx.EXPAND)
mSizer.Add(btn_start)
btn_stop = wx.Button(parent=mPanel, label=u'停止', style=wx.EXPAND)
mSizer.Add(btn_stop)
self.edit = wx.TextCtrl(parent=mPanel,style=wx.EXPAND,value=u'这里输入测试的包名')
mSizer.Add(self.edit,flag=wx.EXPAND)
self.edit.Bind(event=wx.EVT_CHOICE, handler=self.requestFocus)
self.bitmap_cpu = wx.StaticBitmap(parent=mPanel)
mSizer.Add(self.bitmap_cpu, flag=wx.EXPAND)
#self.bitmap_mem = wx.StaticBitmap(parent=mPanel)
#mSizer.Add(self.bitmap_mem, flag=wx.EXPAND)
mPanel.SetSizer(mSizer)
mPanel.Fit()
btn_start.Bind(event=wx.EVT_BUTTON, handler=self.startWatch)
btn_stop.Bind(event=wx.EVT_BUTTON, handler=self.stopWatch)
def requestFocus(self,event):
self.edit.SetValue("")
def startWatch(self, event):
self.flag = True
thread.start_new_thread(self.getInfo, ())
def stopWatch(self, event):
self.flag = False
def getInfo(self):
while(self.flag):
_result = GetCpuStats(self.edit.GetValue()).startWatch()
self.drawPic(_result)
#self.drawPic_mem(_result)
def writeCsv(self, _list):
writer = csv.writer(file('tmp.csv', 'a+'))
writer.writerow([_list])
def drawPic(self,_list):
self.num+=1
self._label.append(str(self.num))
self._data.append(_list[0][0])
self.writeCsv(_list[0][0])
c = pychartdir.XYChart(500, 400)
c.setPlotArea(30, 20, 400, 300)
c.addLineLayer(self._data)
c.xAxis().setLabels(self._label)
c.makeChart("tmp.png")
mImage = wx.Image("tmp.png")
mImage = mImage.Scale(500,300)
self.bitmap_cpu.SetBitmap(wx.BitmapFromImage(mImage))
def drawPic_mem(self,_list):
self.num02+=1
self._label02.append(str(self.num02))
self._data02.append(_list[1][0])
c = pychartdir.XYChart(500, 400)
c.setPlotArea(60, 40, 400, 300)
c.addLineLayer(self._data02)
c.xAxis().setLabels(self._label02)
c.makeChart("tmp02.png")
mImage = wx.Image("tmp02.png")
mImage = mImage.Scale(500,300)
self.bitmap_mem.SetBitmap(wx.BitmapFromImage(mImage))
if __name__ == '__main__':
app = wx.App()
MyFrame().Show()
app.MainLoop()
原理:
界面用wx做的,图形用pychartdir做的,命令用的是top命令,每次截取到的数据都生成一张临时图片,然后刷新到屏幕上,看起来就是实时数据监控的效果了,基本上BUG一大堆,也懒得改了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com
暂无“python实时监控cpu小工具”评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
2025年11月11日
2025年11月11日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]

