有个需求需要将ifcofig输出解析出来,这里将写的整理出来。方便后续使用。

eth0      Link encap:Ethernet  HWaddr 00:50:53:b2:23:e6
inet addr:10.190.179.83 Bcast:10.180.255.255 Mask:255.255.0.0
inet6 addr: fe80::250:56ff:feb2:33e5/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:28559410 errors:0 dropped:48189 overruns:0 frame:0
TX packets:2392292 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5488032566 (5.4 GB) TX bytes:3079384640 (3.0 GB)

示例代码

import commands

def parse_ifconfig_data(data):
"""
parse ifconfig data into ["eth0 ****" ,"eth1 ***", "lo ***"]
:param data: ifconfig output data
:return: a list like ["eth0 ****" ,"eth1 ***", "lo ***"]
"""
parsed_data = []
new_line = ''
data = [i for i in data.split('\n') if i] for line in data:
if not line.startswith(' '):
parsed_data.append(new_line)
new_line = line + '\n'
else:
new_line += line + '\n'
parsed_data.append(new_line)
return parsed_data[1:] def parse_one_interface(one_data):
result = {}
line_list = data.split('\n')
result["device_name"] = line_list[0].split()[0]
result["HWaddr"] = line_list[0].split()[-1]
result["inet_addr"] = line_list[1].split()[1].split(':')[1]
result["Mask"] = line_list[1].split(':')[-1]
result["MTU"] = line_list[3].split()[-2].split(':')[-1]
return result (ret, if_info) = commands.getstatusoutput("sudo ifconfig -a")
info = parse_ifconfig_data(if_info)
data = info[0]
print parse_one_interface(data)

示例输出

{'HWaddr': '00:50:53:b2:23:e6', 'MTU': '1500', 'Mask': '255.255.0.0', 'inet_addr': '10.190.179.83', 'device_name': 'eth0'}

python解析ifconfig 输出成字典的更多相关文章

  1. python将字符串转换成字典的几种方法

    当我们遇到类似于{‘a’:1, 'b':2, 'c':3}这种字符串时,想要把它转换成字典进行处理,可以使用以下几种方法: 1. Python自带的eval函数(不安全) dictstr = '{&q ...

  2. python 将字符串转换成字典dict的各种方式总结

    1)利用eval可以将字典格式的字符串与字典户转 >>>mstr = '{"name":"yct","age":10}' ...

  3. python 将excel转换成字典,并且将字典写到txt文件里

    # -*- coding: utf-8 -*- #python2.7 import sys reload(sys) sys.setdefaultencoding('utf-8') from pyexc ...

  4. python 将字符串转换成字典dict

    JSON到字典转化:>>>dictinfo = json.loads(json_str) 输出dict类型 字典到JSON转化:>>>jsoninfo = json ...

  5. python读取excel数据转换成字典

    以上面的excel格式,输出字典类型: import xlrddef read_excel_data(): filename = 'E:\学历列表.xls' data = xlrd.open_work ...

  6. python将str转换成字典

    典型的应用场景:Json数据的解析 >>> user "{'name' : 'jim', 'sex' : 'male', 'age': 18}" >> ...

  7. Python将字符串转换成字典

    1. ast包 import ast user_info = '{"name" : "南湖", "gender" : "male& ...

  8. Python+Selenium进行UI自动化测试项目中,常用的小技巧1:读取excel表,转化成字典(dict)输出

    从今天开始我将会把在项目中遇到的问题,以及常用的一些技巧来分享出来,以此来促进自己的学习和提升自己:更加方便我以后的查阅. 现在要说的是:用Python来读取excel表的数据,返回字典(dict), ...

  9. 第4.4节 Python解析与推导:列表解析、字典解析、集合解析

    一.    引言 经过前几个章节的介绍,终于把与列表解析的前置内容介绍完了,本节老猿将列表解析.字典解析.集合解析进行统一的介绍. 前面章节老猿好几次说到了要介绍列表解析,但老猿认为涉及知识层面比较多 ...

随机推荐

  1. MATLAB基本使用及SIMULINK建模仿真实验

    MATLAB基本使用及SIMULINK建模仿真实验 这是我总结的操作方法: 1 )  M脚本文件的编写 1.新建M-file: 2.输入指令: 3.保存(注意:保存路径需要与工作路径一致) 2 )在S ...

  2. re模块的基本使用

    目录 re模块 常用元字符 特殊构造 贪婪模式 非贪婪模式 re的常用函数 re模块补充 关于re模块必须知道的知识点 re模块 re模块 , 即正则表达式 , 本身是一种小型的.高度专业化的编程语言 ...

  3. freeradius简单配置

    1.安装freeradius sudo apt-get update sudo apt-get install freeradius 2.配置client.conf vim /etc/freeradi ...

  4. static静态关键字

    转载自大佬:https://www.cnblogs.com/xrq730/p/4820992.html 静态资源和静态方法 首先,静态的资源和方法等会随着类的加载而进入内存被初始化,而非静态的资源和方 ...

  5. (转)白话数字签名(2)——软件&设备

    然而它太慢了 非对称加密算法有一个重大缺点——加密速度慢,或者说得更拽一些,编码率比较低.例如在上一篇里我给Clark传的那个1GB的小电影,进行非对称加密足足用了66小时.那个借条小一些吧,也用了将 ...

  6. C# IV: 数据库基础操作2

    需上一篇C# III:数据库基础操作 另外一个经常碰到的数据库操作是,单次执行多个SQL语句,譬如,一次性插入多条数据. 方法一,拼凑长SQL语句 拼凑长SQL语句实际上是String的操作.如下示例 ...

  7. SqlServer2005 查询 第一讲 计算列

    数据库查询[最重要且在数据库中难度最大] 声明一下我这里用的数据库样例是郝斌老师的(scott库) 我尽最大努力把复杂的问题简单化,方便理解,希望我写的东西能够帮助到你们 有些复杂的东西我我用自己的方 ...

  8. 用正则表达式获取URL中的查询参数

    总结获取url中查询参数的两种方式 通过正则表达式获取单个参数 url中的所有查询参数可以通过 window.location.search 字段获取,以字符串的形式返回.并有固定的格式 ?param ...

  9. 领扣(LeetCode)各位相加 个人题解

    给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数. 示例: 输入: 38 输出: 2 解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2. 由于 2 是一位数,所 ...

  10. 领扣(LeetCode)最大连续1的个数 个人题解

    给定一个二进制数组, 计算其中最大连续1的个数. 示例 1: 输入: [1,1,0,1,1,1] 输出: 3 解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3. 注意: 输入的数组 ...