txt,xls,xlsx,csv操作 1· xlwt 保存的xlsx无法直接office打开,但是wps可以打开, 2·如何在csv文件中跳过第一行的python代码
今天加油鸭� 2021-06-10 18:16:07 76 收藏
文章标签: python 大数据 人工智能
版权
我来了我来了,我带着问题回来了~
宝们有没有在日常敲代码中发现索引值和数据对不上的问题,产生这个问题的原因是你加了header,它在计算机数据识别中占了一行位置,那么我们应该如何给它变回来呢?
我之前尝试过header=None,index=0,还有巴拉巴拉一大堆都不好使,这里我给大家看一行代码,你只需要在我框框的指定位置添加,名字什么自己对应上就可以完美解决~
就是这里next(reader),别看它不起眼,但是真的很好用,前后你们那个名称自己对应一下,一定要改成自己的
OK啦完美解决,已经跳过第一行啦嘿嘿嘿~
备选方案 1 2 3 4 5 6 7 import csvfrom itertools import islicewith open ('表格/2019-04-01.csv' , 'r' ) as read_file: reader = csv.reader(read_file) for row in islice(reader, 1 , None ): print (row)
前言
在做自动化测试时,需要将测试数据存放在excel表格中,读取数据的时候,我们只需要读取非表头的内容即可,那么如何跳过表头读取excel表格中的数据呢?
在此,先将excel工作簿以及sheet表格进行封装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 import xlrdclass ReadExcel : def __init__ (self, filename ): """ 打开文件 :param filename: 文件路径 """ self.wb = xlrd.open_workbook(filename=filename) def open_sheet (self, sheet_name ): """ 根据表格名称打开表格 :param sheet_name:sheet表格名称 :return: """ return self.wb.sheet_by_name(sheet_name=sheet_name) def operate_sheet (self, sheet_name ): """ 这里就是读取excel表格的函数,通过下面三种方法读取 :return: """ 123456789101112131415161718192021
下面将通过三种方法实现excel跳过表头读取数据(operate_sheet函数)
一、方法一:普通方法 在读取表格时,条件判断:当行数对应索引为0(索引从0开始,0表示第一行)时,跳过 代码如下(示例):
1 2 3 4 5 6 7 8 9 10 11 12 13 def operate_sheet (self, sheet_name ): """ 操作表格 :return: """ sheet = self.open_sheet(sheet_name=sheet_name) for i in range (row_num): if i==0 : continue print (sheet.row_values(i))12345678910111213
调用operate_sheet函数:
1 2 3 4 if __name__ == '__main__' : re = ReadExcel("ZHZX.xlsx" ) re.operate_sheet("Sheet_zhzx" ) 123
后续两种方法的调用方法同上,不再展示
二、方法二:用range函数 range()函数用法参考菜鸟教程:pyhton3 range()函数用法
代码如下(示例):
1 2 3 4 5 6 7 8 9 10 11 def operate_sheet (self, sheet_name ): """ 操作表格 :return: """ sheet = self.open_sheet(sheet_name=sheet_name) for i in range (1 ,row_num): print (sheet.row_values(i))12345678910
三、方法三:用迭代器切片 需导入islice包
1 2 from itertools import islice1
代码如下(示例):
1 2 3 4 5 6 7 8 9 10 11 12 13 def operate_sheet (self, sheet_name ): """ 操作表格 :return: """ sheet = self.open_sheet(sheet_name=sheet_name) iter_row_num = iter (range (row_num)) for i in islice(iter_row_num,1 ,None ): print (sheet.row_values(i))123456789101112
总结
pandas https://pandas.pydata.org/pandas-docs/stable/user_guide/io.html