背景:之前一直想做一个网络设备配置自动化备份的python程序,以前通过读取ini文件的文件实现了,但是ini文件编辑和更新太麻烦,一起想通过读取excel的方式来实现。在老陆的帮忙下,完成了这一个模块。

需求:excel文件中保存了我所有网络设备的信息,包括设备名,品牌,帐号,密码,IP地址,备份命令、连接方式等信息。我想将所有信息读取到一个字典中。key为设备名,value是一个保存具体信息的字典,这个二级字典中又包含了标题和每一行值的对应关系。

 思路:
1、用openpyxl读取所有的行到叠代器。
2、第一个for循环完成:将所有行的信息存储到all_line这一个列表中。
3、第二个for循环完成:将所有信息存储到all_dict这一个字典中
4、函数最后return一个包含这个excel表所有信息的字典

实现代码:

from openpyxl import load_workbook
import sysdef get_excel_sections(list_file):wb = load_workbook(list_file)  # 载入表格,生成实例,名称叫wbread_table = wb['LIST']  # 读取excel文件中LIST这个表list_all_row = read_table.rows  # 读取表中所有的行到叠代器line = []  # 每一行的数据生成为列表,临时变量all_line = []  # 以每一行为单位,存储所有的行的列表all_dict = {}  # 总字典for row in list_all_row:  # 依次读取每一行for i in range(len(row)):  # 读每一行有多少单元格的这么多次line.append(str(row[i].value).strip())all_line.append(line)  # 将每一行添加到all_line的列表中line = []              # 重置line列表for i in range(2, len(all_line)):  # 从第3行开始读,读到最后一行parameter_dict = dict(zip(all_line[1], all_line[i]))  # 形成参数dict字典,二级字典all_dict[all_line[i][0]] = parameter_dict   # 第1列的元素作为一级字典的key,二级字典作为value生成总字典wb.close()    # 关闭excelreturn all_dict    #返回一个字典excel_file = sys.path[0] + '\\list.xlsx'      # 指定excel文件路径
dict = get_excel_sections(excel_file)    # 运行函数
print(dict)   # 打印结果

运行结果展示:

{
'ShenZ-BG2-49F-SW3':
{'device_name': 'ShenZ-BG2-49F-SW3',
'area': '储能大厦',
'brand': 'HUAWEI',
'device_ip': '1.1.1.1','device_username': 'luotao',
'device_password': 'xxxxx',
'device_show_config_cmd': 'display current-configuration','ssh_or_telnet': 'ssh',
'device_disable_pager_cmd': 'screen-length 0 temporary','device_quit_cmd': 'None',
'device_prompt': 'None','device_prompt_username': 'None',
'device_prompt_password': 'None'}, 'ShanD-SC2-SW1':
{'device_name': 'ShanD-SC2-SW1',
'area': '山东分公司','brand': 'H3C',
'device_ip': '1.1.1.2','device_username': 'luotao','device_password': 'xxxxx',
'device_show_config_cmd': 'display current-configuration',
'ssh_or_telnet': 'ssh',
'device_disable_pager_cmd': 'screen-length disable','device_quit_cmd': 'None','device_prompt': 'None',
'device_prompt_username': 'None',
'device_prompt_password': 'None'}, 'ShanD-BG2-PSW1':
{'device_name': 'ShanD-BG2-PSW1','area': '山东分公司', 'brand': 'H3C',
'device_ip': '1.1.1.3',
'device_username': 'luotao',
'device_password': 'xxxxx',
'device_show_config_cmd': 'display current-configuration',
'ssh_or_telnet': 'ssh',
'device_disable_pager_cmd': 'screen-length disable',
'device_quit_cmd': 'None',
'device_prompt': 'None',
'device_prompt_username': 'None','device_prompt_password': 'None'}
}

利用openpyxl模块读取excel文件相关推荐

  1. [转载] Python利用openpyxl模块读取excel文件内容

    参考链接: Python | 使用openpyxl模块调整Excel文件的行和列 import openpyxl wb = openpyxl.load_workbook('原始数据.xlsx') #读 ...

  2. Python使用openpyxl模块读写excel文件

    Python使用openpyxl模块读写excel文件 openpyxl是一个用于写入和读取xlsx格式的excel文件的Python模块. excel2010后的后缀名为xlsx,不再是xls,使用 ...

  3. 利用openpyxl来读取Excel数据

    利用openpyxl来读取Excel数据 第二篇博客就这样开始啦. 今天我们来讲如何利用openpyxl来读取Excel当中的数据. 首先,来说一下变更的运行环境 添加 openpyxl 插件 关于插 ...

  4. python怎么打开h5文件_python中利用h5py模块读取h5文件中的主键方法

    如下所示: import h5py import numpy as np #HDF5的写入: imgData = np.zeros((2,4)) f = h5py.File('HDF5_FILE.h5 ...

  5. 使用python中openpyxl模块操作excel文件,计算单元格分子式的相对分子质量(一)

    背景:本人是力学专业博士,从事分子动力学模拟,最近需要对结果进行数据分析,其中一项就是计算每一时刻的不同分子式的相对分子质量并将最大相对分子质量输出,换出曲线图.已知,分子式数据均保存在excel文件 ...

  6. python excel处理模块_Python(00):openpyxl模块处理Excel文件

     首先贴出四种方法适用范围比较: 注释:Excel 2003 即XLS文件有大小限制即65536行256列,所以不支持大文件.而Excel 2007以上即XLSX文件的限制则为1048576行163 ...

  7. 基础补充:使用xlrd模块读取excel文件

    因为接口测试用例使用excel文件来维护的,所以有必要学习下操作excel的基本方法 参考博客:python 3 操作 excel 把自己练习的代码贴出来,是一些基本的操作,每行代码后面都加了注释. ...

  8. python利用numpy模块读取csv文件

    文章目录 numpy.loadtxt()方法 简单读取 字符串处理-str参数 跳过首行 - skiprow = 1 读取特定列 - usecols参数 numpy切片 更多读取方法 numpy.lo ...

  9. python 读取合并单元格的excel_python 利用三方的xlrd模块读取excel文件,处理合并单元格...

    目的: python能使用xlrd模块实现对Excel数据的读取,且按照想要的输出形式. 总体思路: (1)要想实现对Excel数据的读取,需要用到第三方应用,直接应用. (2)实际操作时候和我们实际 ...

最新文章

  1. GNS3的默认Telnet程序改成secureCRT
  2. ORACLE了局,每天10问(二)
  3. onWindowFocusChanged重要作用(得到/失去焦点call) 、
  4. linux系统python截图不显示中文_Linux运维知识之解决linux系统下python中的matplotlib模块内的pyplot输出图片不能显示中文的问题...
  5. 原码的一位乘法和补码的一位乘法对比
  6. 企业文件服务器资源管理方案
  7. Android github 快速实现多人协作
  8. 【微信小程序】token/session失效了该怎么跳转页面
  9. jar包天天见,可是你知道它的运行机制吗
  10. python读写json_python 读写json数据
  11. 关于集合类的做法示例 实体类赋值 cnblogs
  12. 阿里云云计算 21 VPC的概念
  13. java中修改和删除的单词_Java 解惑: 你能通过改变一个单词来解决这个bug吗?
  14. 正交匹配追踪算法(OMP)简介与详解
  15. pxe启动找不到服务器,linux – PXE启动 – 在TFTP服务器上找不到内核
  16. ThingsBoard 多个设备的最新遥测数据合并计算案例
  17. 《The Tobii I-VT Fixation Filter Algorithm description》阅读
  18. php使用amqp,php,_php的amqp应该怎样使用?,php - phpStudy
  19. 系统集成项目应怎样管?本文经验值得借鉴
  20. AI为职业病做了啥贡献,了解一下

热门文章

  1. 在客户机与服务器之间实现文件共享
  2. 如何使用python_pygame设计一个接鸡蛋游戏
  3. Matlab导出高清图片、且Word中压缩不失真、转换PDF不失真
  4. 音频分类-数据集:Urbansound8K【应用较为广泛的用于自动城市环境声分类研究的数据集,含10个分类:空调声、汽车鸣笛声、儿童玩耍声、狗叫声、钻孔声、引擎空转声、枪声、手提钻、警笛声、街道音乐】
  5. 网盘关停日后,百度云、天翼云等路在何方?
  6. Java 练习计算圆周长和面积
  7. 影响经济和股市的唯一宏观指标
  8. KiCad 下载安装及镜像站介绍
  9. 【天光学术】银行会计主管竞聘演讲稿
  10. js判断是否微信PC端打开内置浏览器