"""封装常用文件读取方法"""
import configparser
import openpyxl
class Read_File(object):
def read_conf(self,filepath,section):
"""取得conf文件配置全部值,filepath参数是文件路径,section参数是conf的文件标题"""
"""调用函数方法,实例化"""
conf = configparser.ConfigParser()
"""读取配置文件"""
conf.read(filepath,encoding="utf-8")
"""将配置文件转换成字典"""
con = dict(conf.items(section))
"""返回配置文件内容 """
return con
def read_section(self,filepath,section,option):
"""取得conf文件配置全部值,filepath参数是文件路径,section参数是conf的文件标题,option参数是配置文件字段"""
conf = configparser.ConfigParser()
conf.read(filepath,encoding="utf-8")
con = conf.get(section=section,option=option)
return con
def read_file_path(self, filename, sheet_name):
"""取得excel文件读取数值传递给下个变量做数据转化,filename参数是文件路径,sheetname参数是文件页数名称"""
"""打开指定文件,文件路径做局部变量"""
self.filename = filename
self.ow = openpyxl.load_workbook(filename=filename)
"""打开指定文件,页面页码"""
self.sheet = self.ow[sheet_name]
def read_excel(self):
"""读取文件,excel表格的数据处理,将所有数据做字典形式插入列表"""
"""对读取的表数据转换列表"""
rows_data = list(self.sheet.rows)
"""创建列表存字典键名"""
titles = []
"""循环列表,获取表第一行的标题,用作字典键名"""
for tltle in rows_data[0]:
titles.append(tltle.value)
"""创建列表存字典键值"""
cases =[]
"""循环列数,获取第一行外的所有数据,用作字典键值"""
for case in rows_data[1:]:
"""创建列表存转换后的字典"""
data = []
"""循环,每行"""
for cell in case:
data.append(cell.value)
"""判断该单元格是否为字符串,如果是字符串类型则需要使用eval();如果不是字符串类型则不需要使用eval()"""
if isinstance(cell.value, str):
data.append(eval(cell.value))
else:
data.append(cell.value)
"""使用函数直接转换成字典"""
case_data = dict(list(zip(titles,data)))
"""插入转换后的字典进入列表"""
cases.append(case_data)
"""返回列表给函数"""
return cases
def excel_write(self, row, column, data):
"""写入数据excel,根据单元格位置写入内容,row参数是行数,column参数是列数,data是写入的数据"""
self.sheet.cell(row, column).value = data
def excel_save(self):
"""保存excel文件"""
self.ow.save(self.filename)
"""关闭excel文件"""
self.ow.close()