linux proc net dev,如何使用Python将/proc/net/dev的输出解析为每个接口的key:value对?...

本文档详细解读了如何使用Python解析/proc/net/dev文件,展示了如何获取接收和发送数据包统计信息,以及创建了一个包含lo和eth0接口数据的faces字典。核心内容包括数据收集、处理和展示。
摘要由CSDN通过智能技术生成

这是一个非常格式化的输入,您可以很容易地通过拆分每一行来获得列和数据列表,然后创建它的dict。

下面是一个没有regex的简单脚本lines = open("/proc/net/dev", "r").readlines()

columnLine = lines[1]

_, receiveCols , transmitCols = columnLine.split("|")

receiveCols = map(lambda a:"recv_"+a, receiveCols.split())

transmitCols = map(lambda a:"trans_"+a, transmitCols.split())

cols = receiveCols+transmitCols

faces = {}

for line in lines[2:]:

if line.find(":") < 0: continue

face, data = line.split(":")

faceData = dict(zip(cols, data.split()))

faces[face] = faceData

import pprint

pprint.pprint(faces)

it输出{' lo': {'recv_bytes': '7056295',

'recv_compressed': '0',

'recv_drop': '0',

'recv_errs': '0',

'recv_fifo': '0',

'recv_frame': '0',

'recv_multicast': '0',

'recv_packets': '12148',

'trans_bytes': '7056295',

'trans_carrier': '0',

'trans_colls': '0',

'trans_compressed': '0',

'trans_drop': '0',

'trans_errs': '0',

'trans_fifo': '0',

'trans_packets': '12148'},

' eth0': {'recv_bytes': '34084530',

'recv_compressed': '0',

'recv_drop': '0',

'recv_errs': '0',

'recv_fifo': '0',

'recv_frame': '0',

'recv_multicast': '0',

'recv_packets': '30599',

'trans_bytes': '6170441',

'trans_carrier': '0',

'trans_colls': '0',

'trans_compressed': '0',

'trans_drop': '0',

'trans_errs': '0',

'trans_fifo': '0',

'trans_packets': '32377'}}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值