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中for循环详解
Jan 17 Python
python3.3使用tkinter开发猜数字游戏示例
Mar 14 Python
RC4文件加密的python实现方法
Jun 30 Python
对python3 中方法各种参数和返回值详解
Dec 15 Python
对python读取CT医学图像的实例详解
Jan 24 Python
浅谈python之高阶函数和匿名函数
Mar 21 Python
Python openpyxl读取单元格字体颜色过程解析
Sep 03 Python
详解python路径拼接os.path.join()函数的用法
Oct 09 Python
Django 返回json数据的实现示例
Mar 05 Python
python实现批量移动文件
Apr 05 Python
总结Python使用过程中的bug
Jun 18 Python
Python之Matplotlib绘制热力图和面积图
Apr 13 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
为了这两部电子管收音机,买了6套全新电子管和10粒刻度盘灯泡
2021/03/02 无线电
PHP动态变静态原理
2006/11/25 PHP
php addslashes及其他清除空格的方法是不安全的
2012/01/25 PHP
在Win7 中为php扩展配置Xcache
2014/10/08 PHP
基于jQuery的树控件实现代码(asp.net+json)
2010/07/11 Javascript
js将iframe中控件的值传到主页面控件中的实现方法
2013/03/11 Javascript
Javascript连接Access数据库完整实例
2015/08/03 Javascript
jQuery查找节点并获取节点属性的方法
2016/09/09 Javascript
详解能在多种前端框架下使用的表格控件
2017/01/11 Javascript
ES6中的箭头函数实例详解
2017/04/06 Javascript
vue 中swiper的使用教程
2018/05/22 Javascript
NodeJS实现自定义流的方法
2018/08/01 NodeJs
原生js实现淘宝放大镜效果
2020/10/28 Javascript
微信小程序获取位置展示地图并标注信息的实例代码
2019/09/01 Javascript
Vue页面刷新记住页面状态的实现
2019/12/27 Javascript
微信小程序自定义navigationBar顶部导航栏适配所有机型(附完整案例)
2020/04/26 Javascript
[47:52]完美世界DOTA2联赛PWL S2 PXG vs InkIce 第二场 11.26
2020/11/30 DOTA
python sort、sorted高级排序技巧
2014/11/21 Python
python通过伪装头部数据抵抗反爬虫的实例
2018/05/07 Python
关于python写入文件自动换行的问题
2018/06/23 Python
Django中celery执行任务结果的保存方法
2019/07/12 Python
详解Django CAS 解决方案
2019/10/30 Python
Python 基于wxpy库实现微信添加好友功能(简洁)
2019/11/29 Python
Python魔术方法专题
2020/06/19 Python
最新pycharm安装教程
2020/11/18 Python
CSS中垂直居中的简单实现方法
2015/07/06 HTML / CSS
物流经理自我评价
2013/09/23 职场文书
鲜果饮品店创业计划书
2014/01/21 职场文书
十佳党员事迹材料
2014/08/28 职场文书
运动会400米加油稿(8篇)
2014/09/22 职场文书
计划生育证明格式及范本
2014/10/09 职场文书
2014年党支部书记工作总结
2014/12/04 职场文书
教师个人年度总结
2015/02/11 职场文书
优化经济发展环境工作总结
2015/08/11 职场文书
2016年幼儿园教师师德承诺书
2016/03/25 职场文书
Python import模块的缓存问题解决方案
2021/06/02 Python