Python获取CPU、内存使用率以及网络使用状态代码


Posted in Python onFebruary 08, 2018

由于psutil已更新到3.0.1版本,最新的代码如下:

#!/usr/bin/env python

import os
import time
import sys
import atexit
import psutil

#print "Welcome,current system is",os.name," 3 seconds late start to get data"
time.sleep(3)

line_num = 1

#function of Get cpu state
def getCPUstate(interval=1):
  return (" CPU:"+str(psutil.cpu_percent(interval))+"%")

def getMemorystate():
  phymem = psutil.virtual_memory()
  line = "Memory: %5s%% %6s/%s"%(
      phymem.percent,
      str(int(phymem.used/1024/1024))+"M",
      str(int(phymem.total/1024/1024))+"M"
      )
  return line
def bytes2human(n):
  """
  >>>bytes2human(10000)
  '9.8k'
  >>>bytes2human(100001221)
  '95.4M'
  """
  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 '%.2fB'%(n)
def poll(interval):
  """Retrieve raw stats within an interval window."""
  tot_before = psutil.net_io_counters()
  pnic_before = psutil.net_io_counters(pernic=True)
  #sleep some time
  time.sleep(interval)
  tot_after = psutil.net_io_counters()
  pnic_after = psutil.net_io_counters(pernic=True)
  #get cpu stats
  cpu_state = getCPUstate(interval)
  #get memory
  memory_state = getMemorystate()
  return (tot_before,tot_after,pnic_before,pnic_after,cpu_state,memory_state)
def refresh_window(tot_before,tot_after,pnic_before,pnic_after,cpu_state,memory_state):
  """print stats on screen"""
  #print current time,cpu state,memory
  print (time.asctime() +" | "+cpu_state+" | "+
      memory_state)
  #total
  print(" NetStates:")
  print(" total bytes: sent: %-10s received: %s"%(\
    bytes2human(tot_after.bytes_sent), \
    bytes2human(tot_after.bytes_recv)))
  print( " total packets: sent: %-10s received: %s"%(\
    tot_after.packets_sent,\
    tot_after.packets_recv))
  # per-network interface details: let's sort network interfaces so  
  # that the ones which generated more traffic are shown first
  print( " ")
  nic_names = pnic_after.keys()
  #nic_names.sort(key=lambda x: sum(pnic_after[x]), reverse=True)
  for name in nic_names:
    stats_before = pnic_before[name]
    stats_after = pnic_after[name]
    templ = "%-15s %15s %15s"  
    print(templ % (name, "TOTAL", "PER-SEC")) 
    print(templ % (
      "bytes-sent",  
      bytes2human(stats_after.bytes_sent), 
      bytes2human(stats_after.bytes_sent - stats_before.bytes_sent) +
      '/s', 
      ))
    print(templ % (  
      "bytes-recv",  
      bytes2human(stats_after.bytes_recv),  
      bytes2human(stats_after.bytes_recv- stats_before.bytes_recv)
      + '/s',  
      ))
    print(templ % ( 
      "pkts-sent",
      stats_after.packets_sent,
      stats_after.packets_sent - stats_before.packets_sent,
      ))
    print((templ %(
      "pkts-recv", 
      stats_after.packets_recv,
      stats_after.packets_recv - stats_before.packets_recv,
      )))
    print( " ")
try:
  interval = 0
  while 1:
    args = poll(interval)
    refresh_window(*args)
    interval = 1
except (KeyboardInterrupt,SystemExit):
  pass

以上就是本次更新后的实例代码,大家可以一起测试下,如果有其他问题可以在下方的留言区讨论,感谢你对三水点靠木的支持。

Python 相关文章推荐
新手该如何学python怎么学好python?
Oct 07 Python
Python网页解析利器BeautifulSoup安装使用介绍
Mar 17 Python
Python之父谈Python的未来形式
Jul 01 Python
python如何创建TCP服务端和客户端
Aug 26 Python
浅谈python下含中文字符串正则表达式的编码问题
Dec 07 Python
对json字符串与python字符串的不同之处详解
Dec 19 Python
python读取各种文件数据方法解析
Dec 29 Python
python调用并链接MATLAB脚本详解
Jul 05 Python
Django多数据库的实现过程详解
Aug 01 Python
python爬取百度贴吧前1000页内容(requests库面向对象思想实现)
Aug 10 Python
python语言的优势是什么
Jun 17 Python
python爬虫框架feapde的使用简介
Apr 20 Python
python实现二叉查找树实例代码
Feb 08 #Python
单链表反转python实现代码示例
Feb 08 #Python
Python测试人员需要掌握的知识
Feb 08 #Python
python实现单向链表详解
Feb 08 #Python
Python生成器以及应用实例解析
Feb 08 #Python
代码分析Python地图坐标转换
Feb 08 #Python
python爬虫中get和post方法介绍以及cookie作用
Feb 08 #Python
You might like
php 方便水印和缩略图的图形类
2009/05/21 PHP
基于jQuery的一个扩展form序列化到json对象
2010/12/09 Javascript
整理8个很棒的 jQuery 倒计时插件和教程
2011/12/12 Javascript
复选框全选与全不选操作实现思路
2013/08/18 Javascript
js类式继承的具体实现方法
2013/12/31 Javascript
jQuery插件boxScroll实现图片轮播特效
2015/07/14 Javascript
jQuery代码实现对话框右上角菜单带关闭×
2016/05/03 Javascript
JavaScript实现时间倒计时跳转(推荐)
2016/06/28 Javascript
JavaScript简单获取系统当前时间完整示例
2016/08/02 Javascript
JS实现图片垂直居中显示小结
2016/12/13 Javascript
nodejs 实现钉钉ISV接入的加密解密方法
2017/01/16 NodeJs
js 实现获取name 相同的页面元素并循环遍历的方法
2017/02/14 Javascript
Bootstrap 过渡效果Transition 模态框(Modal)
2017/03/17 Javascript
微信小程序 实例开发总结
2017/04/26 Javascript
antd中table展开行默认展示,且不需要前边的加号操作
2020/11/02 Javascript
[05:05]给小松五分钟系列 第二期介绍为什么打DOTA2
2014/07/02 DOTA
python实现二维码扫码自动登录淘宝
2016/12/27 Python
Python读取和处理文件后缀为.sqlite的数据文件(实例讲解)
2017/06/27 Python
Python中执行存储过程及获取存储过程返回值的方法
2017/10/07 Python
基于DataFrame改变列类型的方法
2018/07/25 Python
Python+selenium 获取浏览器窗口坐标、句柄的方法
2018/10/14 Python
Python Selenium 之关闭窗口close与quit的方法
2019/02/13 Python
python plotly绘制直方图实例详解
2019/07/22 Python
python为什么会环境变量设置不成功
2020/06/23 Python
美国汽车交易网站:Edmunds
2016/08/17 全球购物
实习销售业务员自我鉴定
2013/09/21 职场文书
2014乡镇干部纪律作风整顿思想汇报
2014/09/13 职场文书
贫困证明书格式及范文
2014/10/15 职场文书
服务员岗位职责
2015/02/03 职场文书
小学教师自我评价
2015/03/04 职场文书
员工表扬信怎么写
2015/05/05 职场文书
教师节大会主持词
2015/07/06 职场文书
2016年领导干部正风肃纪心得体会
2015/10/09 职场文书
写自招自荐信的绝招!
2019/04/19 职场文书
一篇合格的广告文案,其主要目的是什么?
2019/07/12 职场文书
如何用PHP实现分布算法之一致性哈希算法
2021/05/26 PHP