【2024软件测试面试必会技能】python(5):python读取excel数据

python读取excel数据

xlrd参考:https://www.cnblogs.com/dream66/p/12572007.html

openpyxl参考:https://www.cnblogs.com/dream66/p/12599627.html

xlrd/xlwt模块简介:

python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库。

xlrd/xlwt模块安装:
和其它模块安装方式一样,可以离线安装和在线安装
一般用在线安装方式: pip install xlrd 和 pip install xlwt

xlrd模块使用:

import xlrd
data = xlrd.open_workbook(filename)  #文件名以及路径
table = data.sheets()[0]   #通过索引顺序获取
table = data.sheet_by_name(sheet_name)  #通过名称获取

行的操作
nrows = table.nrows #获取该sheet中的有效行数
table.row(rowx) #返回由该行中所有的单元格对象组成的列表

列的操作
ncols = table.ncols   #获取列表的有效列数
table.col(colx, start_rowx=0, end_rowx=None)   #返回由该列中所有的单元格对象组成的列表

单元格操作
table.cell(rowx,colx) #返回单元格对象
table.cell_type(rowx,colx) #返回单元格中的数据类型
table.cell_value(rowx,colx) #返回单元格中的数据

合并单元格的读取操作
table.merged_cells #获取当前文档中的所有合并单元格的位置信息
它返回的是一个列表,每一个元素是合并单元格的位置信息的数组,数组包含
四个元素(起始行,结束行,起始列,结束列)
合并单元格默认不处理的情况下,返回为null,一般是希望所有被合并的每个
单元格都返回合并单元格的内容。可以用判断来实现
for (rlow, rhigh, clow, chigh) in merged:
  if (row_index >= rlow and row_index < rhigh):
    if (col_index >= clow and col_index < chigh):
      cell_value = table.cell_value(row,col)
      return cell_value
      break

1、安装第三方库xlrd

安装一个1.2.0版本的xlrd;或者通过命令行pip install xlrd==1.2.0

下图是通过pycharm工具下载xlrd=1.2.0版本

2、准备一个后缀名为xls的excel文件;如下图:

 3、编写python代码;

代码示例:

复制代码

import os
import xlrd

# 当前路径
current_path=os.path.dirname(__file__)
# excel的路径
excel_path=os.path.join(current_path,'../element_info_datas/element_info_datas.xls')

class ElementdataUtils(object):
    def __init__(self,page_name,excel_path=excel_path):
        self.excel_path=excel_path
        # 打开excel文件
        self.workbook=xlrd.open_workbook(self.excel_path)
        # 打开指定的sheet页
        self.sheet=self.workbook.sheet_by_name(page_name)
        # 获取sheet页中的总行数
        self.row_count=self.sheet.nrows

    def get_element_info(self):
        """遍历获取excel中的数据;以字典嵌套字典的形式"""
        element_infos = {}
        for i in range(1, self.row_count):
            element_info = {}
            element_info['element_name'] = self.sheet.cell_value(i, 1)
            element_info['locator_type'] = self.sheet.cell_value(i, 2)
            element_info['locator_value'] = self.sheet.cell_value(i, 3)
            element_info['timeout'] = self.sheet.cell_value(i, 4)
            element_infos[self.sheet.cell_value(i, 0)] = element_info
        return element_infos

#编写测试代码
if __name__=='__main__':
    elements=ElementdataUtils(page_name='login_page').get_element_info()
    print(elements)

复制代码

 查看执行结果:

 总结

如果你对此文有任何疑问,如果你也需要接口项目实战,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入我们,加入方式在文章的最后面

  自动化测试相关教程推荐:

2023最新自动化测试自学教程新手小白26天入门最详细教程,目前已有300多人通过学习这套教程入职大厂!!_哔哩哔哩_bilibili

2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibili

测试开发相关教程推荐

2023全网最牛,字节测试开发大佬现场教学,从零开始教你成为年薪百万的测试开发工程师_哔哩哔哩_bilibili

postman/jmeter/fiddler测试工具类教程推荐

讲的最详细JMeter接口测试/接口自动化测试项目实战合集教程,学jmeter接口测试一套教程就够了!!_哔哩哔哩_bilibili

2023自学fiddler抓包,请一定要看完【如何1天学会fiddler抓包】的全网最详细视频教程!!_哔哩哔哩_bilibili

2023全网封神,B站讲的最详细的Postman接口测试实战教学,小白都能学会_哔哩哔哩_bilibili

  总结:

 光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

​​​

​​​

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步

在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

测试开发视频教程、学习笔记领取传送门!!

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/403060.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《最新出炉》系列初窥篇-Python+Playwright自动化测试-20-处理鼠标拖拽-下篇

1.简介 上一篇中&#xff0c;宏哥说的宏哥在最后提到网站的反爬虫机制&#xff0c;那么宏哥在自己本地做一个网页&#xff0c;没有那个反爬虫的机制&#xff0c;谷歌浏览器是不是就可以验证成功了&#xff0c;宏哥就想验证一下自己想法&#xff0c;其次有人私信宏哥说是有那种…

嵌入式培训机构四个月实训课程笔记(完整版)-Linux ARM驱动编程第八天-高级驱动framebuffer(物联技术666)

链接&#xff1a;https://pan.baidu.com/s/1cd7LOSAvmPgVRPAyuMX7Fg?pwd1688 提取码&#xff1a;1688 帧缓冲&#xff08;framebuffer&#xff09;设备应用于linux显示技术方面。因为linux的显示平台已经全部基于framebuffer&#xff0c;所以目前在linux环境下开发图形化界面、…

了解JSON的作用及其方法

什么是json JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式采用完全独立编程语言的文本格式存储和表示数据&#xff08;就是字符串&#xff09;。它基于JavaScript语法&#xff0c;但可以被多种编程语言使用和解析。JSON以键值对的形式存…

Stable Diffusion 绘画入门教程(webui)-ControlNet(深度Depth)

上篇文章介绍了线稿约束&#xff0c;这篇文章介绍下深度Depth 文章目录 一、选大模型二、写提示词三、基础参数设置四、启用ControlNet 顾名思义&#xff0c;就是把原图预处理为深度图&#xff0c;而深度图可以区分出图像中各元素的远近关系&#xff0c;那么啥事深度图&#xf…

鸿蒙开源!OpenHarmony——手机的CPU信息应用

1.应用安装步骤 应用下载地址与源码开源如下&#xff1a; CPU_device_information 2.实现功能 完成了开发者手机以下信息的获取 - CPU核心数 - SOC型号 - GPU温度 - 主板温度 - 系统运行时间 - RAM总内存 - RAM可用内存 - RAM空闲内存 - 缓存使用内存 - Swaps交换分区 - 系…

JavaScript在web自动化测试中的应用

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

契约锁与400多家软件厂商实现集成应用

契约锁电子签及印控产品具备200多种功能接口&#xff0c;拥有400多家管理软件厂商集成对接经验&#xff0c;覆盖ERP、OA、业务系统、移动APP应用、低代码平台、BPM、小程序等42种软件类型&#xff0c;在帮助组织落实印章管理制度的同时&#xff0c;按需构建业务电子签场景&…

【计算机网络】一些乱七八糟内容

MAC Media Access Control 用于在局域网&#xff08;LAN&#xff09;或广域网&#xff08;WAN&#xff09;中实现设备自动接入网络 "载波侦听多路访问"(Carrier Sense Multiple Access) CSMA/CD 是CSMA的升级版本&#xff0c;加入了序列号检测机制。 CSMA/CA 是CSM…

旅游分享系列之:福建旅游攻略

旅游分享系列之&#xff1a;福建旅游攻略 一、漳州1.福建土楼2.云水谣3.四菜一汤景点 二、厦门1.园林博览苑2.海上自行车道3.山海步道4.海滩5.闽南菜6.落日 三、泉州1.衙口沙滩2.海上日出3.珞珈寺4.海滩烟花 一、漳州 游玩2个景点&#xff1a;云水谣&#xff0c;四菜一汤可以住…

图形系统开发实战课程:进阶篇(上)——6.图形交互操作:拾取

图形开发学院&#xff5c;GraphAnyWhere 课程名称&#xff1a;图形系统开发实战课程&#xff1a;进阶篇(上)课程章节&#xff1a;“图形交互操作:拾取”原文地址&#xff1a;https://www.graphanywhere.com/graph/advanced/2-6.html 第六章 图形交互操作:拾取 \quad 在图形系统…

Avalonia 初学笔记(2):简单了解与WPF的区别

文章目录 相关链接前言Avalonia相对于WPF的新特性简单介绍ChatGPT推荐Avalonia Demo案例Avalonia 开始使用Avalonia 文件扩展名Avalonia Toolkit 扩展安装修改.net core版本Avalonia对WPF的修改类CSS选择器Style的定义简单代码 数据绑定直接绑定UserControl.DataContext和Desig…

128.乐理基础-五线谱-纯四度、纯五度

内容参考于&#xff1a;三分钟音乐社 上一个内容&#xff1a;127.乐理基础-五线谱-纯一度、纯八度-CSDN博客 上一个内容里练习的答案&#xff1a; 纯四度、纯五度的结论 纯四度例子&#xff1a; 例子1&#xff1a; 例子2&#xff1a; 纯四度两个条件&#xff0c;音数是2.5&a…

HTML好玩代码合集(2)

这一期HTML好玩代码合集是动态烟花文字&#xff0c;是本期里最好玩的一个HTML代码&#xff08;把文字可以改成表白的&#xff09;&#xff0c;先看效果&#xff1a; 这个效果是动态的&#xff0c;那些数字都是有烟花堆积成的&#xff0c;代码在哪里呢&#xff1f; 在这里&…

SpringBoot---集成MybatisPlus

介绍 使用SpringBoot集成MybatisPlus框架。 第一步&#xff1a;添加MybatisPlus依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.4</version> </dependenc…

第一个Qt程序中的秘密

创建第一个程序 首先我们打开Qt Creator 打开文件->New Projects... 菜单&#xff0c;创建我们的第一个Qt项目 选择 Qt Widgets Application&#xff0c;点击选择...按钮 之后&#xff0c;输入项目名称QtLearning&#xff0c;并选择创建路径&#xff0c; 在build system中选…

Linux:gitlab创建组,创建用户,创建项目

创建组和项目 让后可以在组里创建一个个仓库 创建成员 我创建个成员再把他分配进这个组里 进入管理员 密码等会我们创建完用户再去配置密码 Regular是普通的用户&#xff0c;只可以正常去访问指定规则的项目 而下面的administrator就是管理员&#xff0c;可以随便进项目&…

springcloud:2.OpenFeign 详细讲解

OpenFeign 是一个基于 Netflix 的 Feign 库进行扩展的工具,它简化了开发人员在微服务架构中进行服务间通信的流程,使得编写和维护 RESTful API 客户端变得更加简单和高效。作为一种声明式的 HTTP 客户端,OpenFeign 提供了直观的注解驱动方式,使得开发人员可以轻松定义和调用…

【Pytorch深度学习开发实践学习】B站刘二大人课程笔记整理lecture04反向传播

lecture04反向传播 课程网址 Pytorch深度学习实践 部分课件内容&#xff1a; import torchx_data [1.0,2.0,3.0] y_data [2.0,4.0,6.0] w torch.tensor([1.0]) w.requires_grad Truedef forward(x):return x*wdef loss(x,y):y_pred forward(x)return (y_pred-y)**2…

【TCP/IP】组播

一、组播介绍 组播&#xff08;Multicast&#xff09;是网络技术中数据传输的一种方法&#xff0c;它允许将数据包同时发送给一组指定的目标&#xff0c;而不是单个的目标&#xff08;单播 Unicast&#xff09;或所有可能的目标&#xff08;广播 Broadcast&#xff09;。组播传…