IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 利用openpyxl模块读取excel文件 -> 正文阅读

[Python知识库]利用openpyxl模块读取excel文件

背景:之前一直想做一个网络设备配置自动化备份的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 sys

def get_excel_sections(list_file):
    wb = load_workbook(list_file)  # 载入表格,生成实例,名称叫wb
    read_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()    # 关闭excel
    return 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'}
}

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-11-18 11:09:13  更:2021-11-18 11:10:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 1:21:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码