linux系统使用python监测网络接口获取网络的输入输出


Posted in Python onJanuary 15, 2014

net.py 获取网络接口的输入和输出

#!/usr/bin/env Python
import time
import sys
if len(sys.argv) > 1:
 INTERFACE = sys.argv[1]
else:
 INTERFACE = 'eth0'
STATS = []
print 'Interface:',INTERFACE
def rx():
 ifstat = open('/proc/net/dev').readlines()
 for interface in  ifstat:
  if INTERFACE in interface:
   stat = float(interface.split()[1])
   STATS[0:] = [stat]
def tx():
 ifstat = open('/proc/net/dev').readlines()
 for interface in  ifstat:
  if INTERFACE in interface:
   stat = float(interface.split()[9])
   STATS[1:] = [stat]
print 'In   Out'
rx()
tx()
while True:
 time.sleep(1)
 rxstat_o = list(STATS)
 rx()
 tx()
 RX = float(STATS[0])
 RX_O = rxstat_o[0]
 TX = float(STATS[1])
 TX_O = rxstat_o[1]
 RX_RATE = round((RX - RX_O)/1024/1024,3)
 TX_RATE = round((TX - TX_O)/1024/1024,3)
 print RX_RATE ,'MB  ',TX_RATE ,'MB'

简单说明一下清单 4:清单 4 读取/proc/net/dev 中的信息,Python 中文件操作可以通过 open 函数,这的确很像 C 语言中的 fopen。通过 open 函数获取一个 file object,然后调用 read(),write()等方法对文件进行读写操作。另外 Python 将文本文件的内容读入可以操作的字符串变量非常容易。文件对象提供了三个“读”方法: read()、readline() 和 readlines()。每种方法可以接受一个变量以限制每次读取的数据量,但它们通常不使用变量。 .read() 每次读取整个文件,它通常用于将文件内容放到一个字符串变量中。然而 .read() 生成文件内容最直接的字符串表示,但对于连续的面向行的处理,它却是不必要的,并且如果文件大于可用内存,则不可能实现这种处理。.readline() 和 .readlines() 之间的差异是后者一次读取整个文件,象 .read() 一样。.readlines() 自动将文件内容分析成一个行的列表,该列表可以由 Python 的 for ... in ... 结构进行处理。另一方面,.readline() 每次只读取一行,通常比 .readlines() 慢得多。仅当没有足够内存可以一次读取整个文件时,才应该使用 .readline()。最后清单 4 打印出网络接口的输入和输出情况。
可以使用 Python 命令运行脚本 net.py 结果见图 4

linux系统使用python监测网络接口获取网络的输入输出

Python 相关文章推荐
linux 下实现python多版本安装实践
Nov 18 Python
python实现的文件同步服务器实例
Jun 02 Python
举例讲解Python设计模式编程中的访问者与观察者模式
Jan 26 Python
Python内置数据结构与操作符的练习题集锦
Jul 01 Python
Python中的复制操作及copy模块中的浅拷贝与深拷贝方法
Jul 02 Python
python导入csv文件出现SyntaxError问题分析
Dec 15 Python
pandas中去除指定字符的实例
May 18 Python
Python基于内置库pytesseract实现图片验证码识别功能
Feb 24 Python
keras的siamese(孪生网络)实现案例
Jun 12 Python
python如何变换环境
Jul 21 Python
Pycharm中使用git进行合作开发的教程详解
Nov 17 Python
python工具快速为音视频自动生成字幕(使用说明)
Jan 27 Python
linux系统使用python监控apache服务器进程脚本分享
Jan 15 #Python
Python获取当前时间的方法
Jan 14 #Python
Python生成随机数的方法
Jan 14 #Python
python模拟登陆Tom邮箱示例分享
Jan 13 #Python
python调用cmd命令行制作刷博器
Jan 13 #Python
本地文件上传到七牛云服务器示例(七牛云存储)
Jan 11 #Python
python实现异步回调机制代码分享
Jan 10 #Python
You might like
超级实用的7个PHP代码片段分享
2012/01/05 PHP
解析用PHP读写音频文件信息的详解(支持WMA和MP3)
2013/05/10 PHP
PHP实现简单实用的分页类代码
2016/04/08 PHP
javascript编程起步(第五课)
2007/02/27 Javascript
JS提交并解析后台返回的XML的代码
2008/11/03 Javascript
JavaScript中的this实例分析
2011/04/28 Javascript
JQuery对class属性的操作实现按钮开关效果
2013/10/11 Javascript
javascript实现起伏的水波背景效果
2016/05/16 Javascript
微信小程序 框架详解及实例应用
2016/09/26 Javascript
js将字符串中的每一个单词的首字母变为大写其余均为小写
2017/01/05 Javascript
select下拉框插件jquery.editable-select详解
2017/01/22 Javascript
JavaScript中的return布尔值的用法和原理解析
2017/08/14 Javascript
weui框架实现上传、预览和删除图片功能代码
2017/08/24 Javascript
简单谈谈CommonsChunkPlugin抽取公共模块
2017/12/31 Javascript
jQuery创建折叠式菜单
2019/06/15 jQuery
DatePickerDialog 自定义样式及使用全解
2019/07/09 Javascript
layui switch 开关监听 弹出确定状态转换的例子
2019/09/21 Javascript
JS控制GIF图片的停止与显示
2019/10/24 Javascript
[53:50]CHAOS vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
Python中的赋值、浅拷贝、深拷贝介绍
2015/03/09 Python
python自动发邮件库yagmail的示例代码
2018/02/23 Python
Python pandas库中的isnull()详解
2019/12/26 Python
python编程进阶之异常处理用法实例分析
2020/02/21 Python
python实现跨excel sheet复制代码实例
2020/03/03 Python
浅析关于Keras的安装(pycharm)和初步理解
2020/10/23 Python
Python Spyder 调出缩进对齐线的操作
2021/02/26 Python
CSS3教程(8):CSS3透明度指南
2009/04/02 HTML / CSS
Theory美国官网:后现代都市风时装品牌
2018/05/09 全球购物
美国购买体育、音乐会和剧院门票网站:SelectATicket
2019/09/08 全球购物
班级道德讲堂实施方案
2014/02/24 职场文书
工程学毕业生自荐信
2014/06/14 职场文书
学校法制宣传月活动总结
2014/07/03 职场文书
公共机构节能宣传周活动总结
2014/07/09 职场文书
党的群众路线教育实践活动对照检查材料思想汇报
2014/09/19 职场文书
导游词之无锡唐城
2019/12/12 职场文书
Vue接口封装的完整步骤记录
2021/05/14 Vue.js