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 相关文章推荐
简单的Python2.7编程初学经验总结
Apr 01 Python
Python实现复杂对象转JSON的方法示例
Jun 22 Python
Python基于Pymssql模块实现连接SQL Server数据库的方法详解
Jul 20 Python
对Python+opencv将图片生成视频的实例详解
Jan 08 Python
python将pandas datarame保存为txt文件的实例
Feb 12 Python
Python将列表数据写入文件(txt, csv,excel)
Apr 03 Python
解决webdriver.Chrome()报错:Message:'chromedriver' executable needs to be in Path
Jun 12 Python
python 基于TCP协议的套接字编程详解
Jun 29 Python
tensorflow 查看梯度方式
Feb 04 Python
Python编程快速上手——疯狂填词程序实现方法分析
Feb 29 Python
python 爬取免费简历模板网站的示例
Sep 27 Python
python反爬虫方法的优缺点分析
Nov 25 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预定义常量
2006/12/25 PHP
php将字符串随机分割成不同长度数组的方法
2015/06/01 PHP
分享10段PHP常用代码
2015/11/11 PHP
浅谈PHP中的
2016/04/23 PHP
php + WebUploader实现图片批量上传功能
2019/05/06 PHP
漂亮的提示信息(带箭头)
2007/03/21 Javascript
JQuery从头学起第一讲
2010/07/04 Javascript
来自国外的页面JavaScript文件优化
2010/12/08 Javascript
js 实现图片预加载(js操作 Image对象属性complete ,事件onload 异步加载图片)
2011/03/25 Javascript
jquery cookie的用法总结
2013/11/18 Javascript
jquery 使用简明教程
2014/03/05 Javascript
Angular中的interceptors拦截器
2017/06/25 Javascript
js实现二级菜单点击显示当前内容效果
2018/04/28 Javascript
JavaScript设计模式之单例模式简单实例教程
2018/07/02 Javascript
解决layer.prompt无效的问题
2019/09/24 Javascript
微信小程序indexOf的替换方法(推荐)
2020/01/14 Javascript
JSONObject与JSONArray使用方法解析
2020/09/28 Javascript
[13:39]2014 DOTA2华西杯精英邀请赛 5 25 NewBee VS DK第一场
2014/05/26 DOTA
Python基于正则表达式实现文件内容替换的方法
2017/08/30 Python
Python对列表去重的多种方法(四种方法)
2017/12/05 Python
使用pytorch进行图像的顺序读取方法
2018/07/27 Python
Python高级特性切片(Slice)操作详解
2018/09/27 Python
python利用插值法对折线进行平滑曲线处理
2018/12/25 Python
Python数据可视化:幂律分布实例详解
2019/12/07 Python
tensorflow模型保存、加载之变量重命名实例
2020/01/21 Python
wxPython修改文本框颜色过程解析
2020/02/14 Python
Html5实现用户注册自动校验功能实例代码
2016/05/24 HTML / CSS
雅诗兰黛(Estee Lauder)英国官方网站:世界顶级化妆品牌
2016/12/29 全球购物
Pretty Little Thing美国:时尚女性服饰
2018/08/27 全球购物
自动化专业个人求职信范文
2013/12/30 职场文书
奶茶店创业计划书范文
2014/01/17 职场文书
投资意向书范本
2014/04/01 职场文书
水毁工程实施方案
2014/04/01 职场文书
Python数据可视化之绘制柱状图和条形图
2021/05/25 Python
如何判断pytorch是否支持GPU加速
2021/06/01 Python
动画《平凡职业成就世界最强》宣布制作OVA
2022/04/01 日漫