python读取csv,Excel,Txt,Yaml 文件
1.数据
1.Csv
login.csv文件:
byhy,88888888
ReadCsv.py文件
import csv #导入csv包 class ReadCsv(): def csv(self): path = r'C:\Users\ADMIN\Desktop\自动化测试学习\hello\data\login.csv' user_file=csv.reader(open(path,'r',encoding="utf8")) for user in user_file: print(user) return user if __name__=='__main__': print(ReadCsv().csv())
2.Excel
login.xlsx文件:
ReadExcel.py文件
import xlrd from xlrd import xldate_as_tuple import datetime ''' xled中单元格的数据类型 数字:浮点型 日期:一串小数 布尔:0或1 所以需要转换数据类型 0 empty;1 string;2 number,3 date,4 boolean,5 error ''' class ReadExcel(): #初始化方法 def __init__(self,data_path,sheetname): # 定义一个属性接收文件路径 self.data_path = data_path # 定义一个属性接收工作表名称 self.sheetname = sheetname # 使用xlrd模块打开excel表读取数据 self.data = xlrd.open_workbook(self.data_path) # 根据工作表的名称获取工作表中的内容(方式①) self.table = self.data.sheet_by_name(self.sheetname) # 根据工作表的索引获取工作表的内容(方式②) # self.table = self.data.sheet_by_name(0) # 获取第一行所有内容,如果括号中1就是第二行,这点跟列表索引类似 self.keys = self.table.row_values(0) # 获取工作表的有效行数 self.rowNum = self.table.nrows # 获取工作表的有效列数 self.colNum = self.table.ncols # 定义一个读取excel表的方法 def readExcel(self): # 定义一个空列表 datas = [] for i in range(1, self.rowNum): # 定义一个空字典 sheet_data = {} for j in range(self.colNum): # 获取单元格数据类型 c_type = self.table.cell(i, j).ctype # 获取单元格数据 c_cell = self.table.cell_value(i, j) if c_type == 2 and c_cell % 1 == 0: # 如果是整形 c_cell = int(c_cell) elif c_type == 3: # 转成datetime对象 date = datetime.datetime(*xldate_as_tuple(c_cell, 0)) c_cell = date.strftime('%Y/%d/%m') elif c_type == 4: c_cell = True if c_cell == 1 else False sheet_data[self.keys[j]] = c_cell # 循环每一个有效的单元格,将字段与值对应存储到字典中 # 字典的key就是excel表中每列第一行的字段 # sheet_data[self.keys[j]] = self.table.row_values(i)[j] # 再将字典追加到列表中 datas.append(sheet_data) # 返回从excel中获取到的数据:以列表存字典的形式返回 return datas if __name__=='__main__': data_path = r'C:\Users\ADMIN\Desktop\自动化测试学习\hello\data\login.xlsx' sheetname = "Sheet1" get_data = ReadExcel(data_path, sheetname) datas = get_data.readExcel() print(datas)
3.Txt
login.txt文件:
byhy,88888888
ReadTxt.py文件
class ReadTxt(): def txt(self): path = r'C:\Users\ADMIN\Desktop\自动化测试学习\hello\data\login.txt' user_file=open(path,'r',encoding="utf8") lines=user_file.readlines() user_file.close() #定义字典 data={} for line in lines: username=line.split(',')[0] password=line.split(',')[1] print(username,password) data[username]=password return data if __name__=='__main__': print(ReadTxt().txt())
4.Yaml
login.yaml文件:
byhy,88888888
ReadTxt.yaml文件
import yaml class ReadYaml(): def yaml(self): path = r'C:\Users\ADMIN\Desktop\自动化测试学习\hello\data\login.yaml' with open(path,'r',encoding="utf8") as f: context=yaml.load(f,Loader=yaml.FullLoader) return context if __name__=='__main__': print(ReadYaml().yaml())