Code前端首页关于Code前端联系我们

如何在Python中自动执行Excel任务?

terry 2年前 (2023-09-27) 阅读数 65 #数据结构与算法

作者:柠檬课

我对熊猫着迷,它对数据反应良好。其实就是用来做数据分析的。如果你做大数据分析和测试,这是必须的! !

但实际上,我们在做自动化测试的时候,如果涉及到数据的读取和存储,使用pandas会非常有效。基本上3行代码可以处理20行操作!本教程仅限于以Lemon Class的全栈自动化测试课程讲解pandas在项目中的实现。这只是冰山一角。希望大家能够尝试和探索!

1.安装环境:

 1:pandas依赖处理Excel的xlrd模块,所以我们需要提前安装这个,安装命令是:pip install xlrd

  2:安装pandas模块还需要一定的编码环境,所以我们自己在安装的时候,确保你的电脑有这些环境:Net.4 、VC-Compiler以及winsdk_web,如果大家没有这些软件~可以咨询我们的辅导员索要相关安装工具。

  3:步骤1和2 准备好了之后,我们就可以开始安装pandas了,安装命令是:pip install pandas

一切准备就绪,就可以开始愉快的玩耍咯!
ps:在这个过程中,可能会遇到安装不顺利的情况,万能的度娘有N种解决方案,你这么大应该要学着自己解决问题。
 

2.Pandas操作Excel表格

数据准备,Excel文件:citron.表单数据如下: 如何用python自动化操作excel?

学生数据如下: 如何用python自动化操作excel?

1:在使用pandas模块之前,可以先安装该模块,如下:

 import  pandas  as pd

2:两种读取Excel文件的方法:

 #方法一:默认读取第一个表单
df=pd.read_excel('lemon.xlsx')#这个会直接默认读取到这个Excel的第一个表单 data=df.head()#默认读取前5行的数据 print("获取到所有的值:\n{0}".format(data))#格式化输出

结果是一个二维矩阵,如下图: 如何用python自动化操作excel?

 #方法二:通过指定表单名的方式来读取
 df=pd.read_excel('lemon.xlsx',sheet_name='student')#可以通过sheet_name来指定读取的表单
 data=df.head()#默认读取前5行的数据 
print("获取到所有的值:\n{0}".format(data))#格式化输出
 

结果如下,也是二维矩阵: 如何用python自动化操作excel?

#方法三:通过表单索引来指定要访问的表单,0表示第一个表单
#也可以采用表单名和索引的双重方式来定位表单
#也可以同时定位多个表单,方式都罗列如下所示
df=pd.read_excel('lemon.xlsx',sheet_name=['python','student'])#可以通过表单名同时指定多个
# df=pd.read_excel('lemon.xlsx',sheet_name=0)#可以通过表单索引来指定读取的表单
# df=pd.read_excel('lemon.xlsx',sheet_name=['python',1])#可以混合的方式来指定
# df=pd.read_excel('lemon.xlsx',sheet_name=[1,2])#可以通过索引 同时指定多个
data=df.values#获取所有的数据,注意这里不能用head()方法哦~
print("获取到所有的值:\n{0}".format(data))#格式化输出

什么是特殊产品?学生可以单独完成此操作。我们来尝试一下,结果很有趣,但是同时同学们也发现这个数据是一个二维矩阵,不能很好的处理我们来做自动测试,所以我们稍后会解释。详细信息,如何读取行号和列号以及每行的内容以及行和列内容的格式。 ?可用于嵌套列表:

df=pd.read_excel('lemon.xlsx')
data=df.ix[[1,2]].values#读取指定多行的话,就要在ix[]里面嵌套列表指定行数
print("读取指定行的数据:\n{0}".format(data))

3:读取指定行和列:

df=pd.read_excel('lemon.xlsx')
data=df.ix[1,2]#读取第一行第二列的值,这里不需要嵌套列表
print("读取指定行的数据:\n{0}".format(data))

4:读取多行多列的值:

df=pd.read_excel('lemon.xlsx')
data=df.ix[[1,2],['title','data']].values#读取第一行第二行的title以及data列的值,这里需要嵌套列表
print("读取指定行的数据:\n{0}".format(data))
 

5:从所有行中获取指定列

df=pd.read_excel('lemon.xlsx')
data=df.ix[:,['title','data']].values#读所有行的title以及data列的值,这里需要嵌套列表
print("读取指定行的数据:\n{0}".format(data))
 

6:获取列数字并打印

df=pd.read_excel('lemon.xlsx')
print("输出行号列表",df.index.values)

输出结果是:
输出行号列表 [0 1 2 3]
 

7:获取列名并打印

df=pd.read_excel('lemon.xlsx')
print("输出列标题",df.columns.values)

运行结果如下所示:
输出列标题 ['case_id' 'title' 'data']
 

8:获取指定数值:

df=pd.read_excel('lemon.xlsx')
print("输出值",df.sample(3).values)#这个方法类似于head()方法以及df.values方法

输出值
 [[2 '输入错误的密码' '{"mobilephone":"18688773467","pwd":"12345678"}']
 [3 '正常充值' '{"mobilephone":"18688773467","amount":"1000"}']
 [1 '正常登录' '{"mobilephone":"18688773467","pwd":"123456"}']]

9:获取指定列值:

df=pd.read_excel('lemon.xlsx')
print("输出值\n",df['data'].values)
 

四:pandas 将 Excel 数据处理成字典

我们有这些数据如何用python自动化操作excel?

被处理成一个字典列表,字典的key是标题名称。

应用代码如下: 如何用python自动化操作excel?

df=pd.read_excel('lemon.xlsx')
test_data=[]
for i in df.index.values:#获取行号的索引,并对其进行遍历:
    #根据i来获取每一行指定的数据 并利用to_dict转成字典
    row_data=df.ix[i,['case_id','module','title','http_method','url','data','expected']].to_dict()
    test_data.append(row_data)
print("最终获取到的数据是:{0}".format(test_data))
 
如何用python自动化操作excel?

最终结果为:

最终获取到的数据是:
[{'title': '正常登录', 'case_id': 1, 'data': '{"mobilephone":"18688773467","pwd":"123456"}'}, 
{'title': '输入错误的密码', 'case_id': 2, 'data': '{"mobilephone":"18688773467","pwd":"12345678"}'}, 
{'title': '正常充值', 'case_id': 3, 'data': '{"mobilephone":"18688773467","amount":"1000"}'}, 
{'title': '充值输入负数', 'case_id': 4, 'data': '{"mobilephone":"18688773467","amount":"-100"}'}]

熊猫学习今天结束!快速打开pycharm并运行! ! !

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门