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的lambda匿名函数的简单介绍
Apr 25 Python
python调用机器喇叭发出蜂鸣声(Beep)的方法
Mar 23 Python
用matplotlib画等高线图详解
Dec 14 Python
python3大文件解压和基本操作
Dec 15 Python
轻松实现TensorFlow微信跳一跳的AI
Jan 05 Python
Numpy数组的保存与读取方法
Apr 04 Python
Python 中字符串拼接的多种方法
Jul 30 Python
python基于gevent实现并发下载器代码实例
Nov 01 Python
python 实现提取log文件中的关键句子,并进行统计分析
Dec 24 Python
tensorflow从ckpt和从.pb文件读取变量的值方式
May 26 Python
python输入中文的实例方法
Sep 14 Python
Python利用matplotlib绘制折线图的新手教程
Nov 05 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 strstr查找字符串中是否包含某些字符的查找函数
2010/06/03 PHP
PHP rawurlencode与urlencode函数的深入分析
2013/06/08 PHP
PHP实现上一篇下一篇的方法实例总结
2016/09/22 PHP
php中时间函数date及常用的时间计算
2017/05/12 PHP
PHP fopen中文文件名乱码问题解决方案
2020/10/28 PHP
jquery 使用点滴函数代码
2011/05/20 Javascript
关于在IE下的一个安全BUG --可用于跟踪用户的系统鼠标位置
2013/04/17 Javascript
JS+CSS实现美化的下拉列表框效果
2015/08/11 Javascript
jQuery实用技巧必备(上)
2015/11/02 Javascript
基于JavaScript实现手机短信按钮倒计时(超简单)
2015/12/30 Javascript
Bootstrap table 定制提示语的加载过程
2017/02/20 Javascript
完美实现js焦点轮播效果(一)
2017/03/07 Javascript
jQuery插件FusionWidgets实现的AngularGauge图效果示例【附demo源码】
2017/03/23 jQuery
js遍历获取表格内数据的方法(必看)
2017/04/06 Javascript
Vue 表单控件绑定的实现示例
2017/08/11 Javascript
浅谈js中的this问题
2017/08/31 Javascript
详解webpack babel的配置
2018/01/09 Javascript
JavaScript实现的简单加密解密操作示例
2018/06/01 Javascript
vue框架搭建之axios使用教程
2018/07/11 Javascript
iview tabs 顶部导航栏和模块切换栏的示例代码
2019/03/04 Javascript
layui当点击文本框时弹出选择框,显示选择内容的例子
2019/09/02 Javascript
[01:00:25]2018DOTA2亚洲邀请赛3月30日 小组赛A组 VG VS Liquid
2018/03/31 DOTA
Python使用百度API上传文件到百度网盘代码分享
2014/11/08 Python
python方向键控制上下左右代码
2018/01/20 Python
Python绘制3D图形
2018/05/03 Python
python3实现钉钉消息推送的方法示例
2019/03/14 Python
python使用协程实现并发操作的方法详解
2019/12/27 Python
Python使用socket_TCP实现小文件下载功能
2020/10/09 Python
Clarins娇韵诗英国官网:来自法国的天然护肤品牌
2017/04/18 全球购物
eBay英国购物网站:eBay.co.uk
2019/06/19 全球购物
会计自我鉴定范文
2013/10/06 职场文书
安全生产汇报材料
2014/02/17 职场文书
甜品店创业计划书
2014/08/14 职场文书
导游词之湖北武当山
2019/09/23 职场文书
十大最强妖精系宝可梦,哲尔尼亚斯实力最强,第五被称为大力士
2022/03/18 日漫
Python tensorflow卷积神经Inception V3网络结构
2022/05/06 Python