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 相关文章推荐
Python动态加载模块的3种方法
Nov 22 Python
Python处理RSS、ATOM模块FEEDPARSER介绍
Feb 18 Python
Python脚本在Appium库上对移动应用实现自动化测试
Apr 17 Python
python爬虫 使用真实浏览器打开网页的两种方法总结
Apr 21 Python
Python基于opencv调用摄像头获取个人图片的实现方法
Feb 21 Python
pyqt5 QProgressBar清空进度条的实例
Jun 21 Python
使用python快速实现不同机器间文件夹共享方式
Dec 22 Python
Python实现括号匹配方法详解
Feb 10 Python
解决python父线程关闭后子线程不关闭问题
Apr 25 Python
解决pytorch 交叉熵损失输出为负数的问题
Jul 07 Python
python复合条件下的字典排序
Dec 18 Python
python解包用法详解
Feb 17 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
PHP打开和关闭文件操作函数总结
2014/11/18 PHP
php的socket编程详解
2016/11/20 PHP
PHP实现正则表达式分组捕获操作示例
2018/02/03 PHP
PHP面向对象程序设计继承用法简单示例
2018/12/28 PHP
JS 自定义函数缺省值的设置方法
2010/05/05 Javascript
js处理表格对table进行修饰
2014/05/26 Javascript
JS组件Bootstrap实现弹出框和提示框效果代码
2015/12/08 Javascript
微信小程序返回多级页面的实现方法
2017/10/27 Javascript
mpvue 如何使用腾讯视频插件的方法
2018/07/16 Javascript
ES6中Symbol、Set和Map用法详解
2019/08/20 Javascript
javascript使用canvas实现饼状图效果
2020/09/08 Javascript
Vue实现手机号、验证码登录(60s禁用倒计时)
2020/12/19 Vue.js
Python and、or以及and-or语法总结
2015/04/14 Python
Python中Class类用法实例分析
2015/11/12 Python
Python读大数据txt
2016/03/28 Python
python 基础教程之Map使用方法
2017/01/17 Python
Python通过future处理并发问题
2017/10/17 Python
Pycharm 设置自定义背景颜色的图文教程
2018/05/23 Python
Tornado Web Server框架编写简易Python服务器
2018/07/28 Python
python使用magic模块进行文件类型识别方法
2018/12/08 Python
Python开启线程,在函数中开线程的实例
2019/02/22 Python
Python中按键来获取指定的值
2019/03/02 Python
python中使用ctypes调用so传参设置遇到的问题及解决方法
2019/06/19 Python
对python 调用类属性的方法详解
2019/07/02 Python
Python 实现Serial 与STM32J进行串口通讯
2019/12/18 Python
Python3开发实例之非关系型图数据库Neo4j安装方法及Python3连接操作Neo4j方法实例
2020/03/18 Python
Expedia意大利旅游网站:酒店、机票和租车预订
2017/10/30 全球购物
护士毕业实习感言
2014/03/05 职场文书
幼儿园中班教师寄语
2014/04/03 职场文书
关于美容院的活动方案
2014/08/14 职场文书
安全生产先进个人事迹材料
2014/12/30 职场文书
战友聚会致辞
2015/07/28 职场文书
Python 机器学习工具包SKlearn的安装与使用
2021/05/14 Python
Python编程编写完善的命令行工具
2021/09/15 Python
海弦WR-800F
2022/04/05 无线电
如何使用SQL Server语句创建表
2022/04/12 SQL Server