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 相关文章推荐
一个基于flask的web应用诞生 bootstrap框架美化(3)
Apr 11 Python
pygame 精灵的行走及二段跳的实现方法(必看篇)
Jul 10 Python
Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】
Jul 11 Python
python+selenium识别验证码并登录的示例代码
Dec 21 Python
python远程连接MySQL数据库
Apr 19 Python
Python异步操作MySQL示例【使用aiomysql】
May 16 Python
python pygame实现五子棋小游戏
Oct 26 Python
简单了解python 生成器 列表推导式 生成器表达式
Aug 22 Python
Python 简单计算要求形状面积的实例
Jan 18 Python
Python使用PyQt5/PySide2编写一个极简的音乐播放器功能
Feb 07 Python
python如何删除列为空的行
Jul 17 Python
如何用python绘制雷达图
Apr 24 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和XSS跨站攻击的防范
2007/04/17 PHP
php实现简单加入购物车功能
2017/03/07 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
PHP实现单例模式建立数据库连接的方法分析
2020/02/11 PHP
基于Jquery的标签智能验证实现代码
2010/12/27 Javascript
怎么选择Javascript框架(Javascript Framework)
2013/11/22 Javascript
jQuery操作cookie方法实例教程
2014/11/25 Javascript
javascript实现状态栏文字首尾相接循环滚动的方法
2015/07/22 Javascript
详解js图片轮播效果实现原理
2015/12/17 Javascript
详述JavaScript实现继承的几种方式(推荐)
2016/03/22 Javascript
js HTML5多图片上传及预览实例解析(不含前端的文件分割)
2016/08/26 Javascript
用jQuery.ajaxSetup实现对请求和响应数据的过滤
2016/12/20 Javascript
详解用webpack2搭建angular2的项目
2017/06/22 Javascript
详解vue添加删除元素的方法
2018/06/30 Javascript
微信小程序实现红包雨功能
2018/07/11 Javascript
ES6知识点整理之模块化的应用详解
2019/04/15 Javascript
Vue.js中Line第三方登录api的实现代码
2020/06/29 Javascript
python实现自动登录人人网并采集信息的方法
2015/06/28 Python
在Django的URLconf中使用命名组的方法
2015/07/18 Python
Python实现堆排序的方法详解
2016/05/03 Python
python出现"IndentationError: unexpected indent"错误解决办法
2017/10/15 Python
python3获取两个日期之间所有日期,以及比较大小的实例
2018/04/08 Python
对命令行模式与python交互模式介绍
2018/05/12 Python
python实现将读入的多维list转为一维list的方法
2018/06/28 Python
Django+JS 实现点击头像即可更改头像的方法示例
2018/12/26 Python
使用python实现语音文件的特征提取方法
2019/01/09 Python
python飞机大战pygame游戏框架搭建操作详解
2019/12/17 Python
python统计函数库scipy.stats的用法解析
2020/02/25 Python
英国拳击装备购物网站:RDX Sports
2018/01/23 全球购物
迪卡侬印尼体育用品商店:Decathlon印尼
2020/03/11 全球购物
小区文明倡议书
2014/05/16 职场文书
毕业生个人自荐书
2015/03/05 职场文书
虎兄虎弟观后感
2015/06/12 职场文书
2019各种承诺书范文
2019/06/24 职场文书
使用HBuilder制作一个简单的HTML5网页
2022/07/07 HTML / CSS
二维码条形码生成的JavaScript脚本库
2022/07/07 Javascript