1、Excel文件处理
安装 openpxl 第三方库
openpxl 模块三大组件:
1、工作簿 (包含多个sheet工作表)
2、工作表 (某个数据包含在某个工作表)
3、单元格
1、创建excel工作簿
import openpyxl"""Excel表格的创建
"""def createExcel():# 创建工作簿wk = openpyxl.Workbook()# 获取当前工作表sheet = wk.active# 写数据到单元格sheet.cell(1, 1).value = "username"sheet.cell(1, 2).value = "class"sheet.cell(1, 3).value = "adress"wk.save("userinfo.xlsx")if __name__ == '__main__':createExcel()
run后会生成一个userinfo.xlsx工作簿,内容:
2、读取工作表
"""2、读取Excel表格的数据
"""
def readExcel():# 读取工作簿wk = openpyxl.load_workbook("userinfo.xlsx")# 方式一:获取工作表sheet1 = wk.get_sheet_by_name("Sheet")# 方式二:获取工作表# sheet1 = wk["Sheet"]# 获取单元格坐标locaion = sheet1.cell(1, 1)value = sheet1.cell(1, 1).valueprint(locaion, value)rows = sheet1.max_rowcols = sheet1.max_columnprint(f"工作表行数={rows}, 列数={cols}")
3、编辑工作表
先加载excel表格 然后修改数据后 保存 就ok
2、日志处理
1、日志作用:
问题定位、信息查询、数据分析
2、内置模块:logging
logging的四大组件:
1、日志器Logger -- > 入口
2、处理器 Handler ---> 执行者 在哪个端输出 (日志文件 or 控制台)
3、格式器 Fomatter 旗帜输入的内容
4、过滤器 Filter 输出感兴趣日志信息 过滤掉不感兴趣的日志信息
关系:1个日志器可以有多个处理器
每个处理器可以有各自的各时期和过滤器
3、logging模块的应用
日志级别:
debug 调试信息
info 关键时间描述 比如 在什么时间做了什么事情
warning 警告信息
error 错误信息
critical 严重错误信息
案例1 如下:
import logging# 创建日志器
logger = logging.getLogger("logger")
# 创建控制台处理器 ---》 日志会输出在控制台
SH = logging.StreamHandler()
# 创建文件处理器 ---》 那么日志会输出到文件里面
FH = logging.FileHandler("log.txt")# 日志包含哪些内容 时间 文件 日志级别 日志信息
formatter = logging.Formatter(fmt="[%(asctime)s][%(filename)s] %(levelname)s : %(message)s",datefmt="%Y/%m/%d %H:%M:%S")
logger.addHandler(SH)
logger.addHandler(FH)
SH.setFormatter(formatter)# 假设有报错
try:score = int(input("请输入你的成绩"))if score > 60:print("恭喜你通过")else:print("继续努力")logging.debug("这是一个debug信息")logger.info("你查询成绩成功")logging.warning("这是一个警告信息")except Exception as error:logger.error("输入不是数字, 错误信息:"+str(error))logger.critical("这是一个critical信息")
如果想封装成一个方法的话, 如下
import loggingclass FrameLog:def getLogger(self):# 创建日志器logger = logging.getLogger("logger")logger.setLevel(logging.INFO)# 如果没有处理器if not logger.handlers:# 创建控制台处理器 ---》 日志会输出在控制台SH = logging.StreamHandler()# 创建文件处理器 ---》 那么日志会输出到文件里面FH = logging.FileHandler("log.txt")# 日志包含哪些内容 时间 文件 日志级别 日志信息formatter = logging.Formatter(fmt="[%(asctime)s][%(filename)s] %(levelname)s : %(message)s",datefmt="%Y/%m/%d %H:%M:%S")logger.addHandler(SH)logger.addHandler(FH)SH.setFormatter(formatter)return loggerdef sum_two(self, x, y):"""求多个数之和:param args::return:"""sum_two = 0try:sum_two = x + yself.getLogger().info(f"计算2个数之和={sum_two}")return sum_twoexcept Exception as error:self.getLogger().error("计算2个数之和有异常:\n"+str(error))def sum(self, *args):"""求多个数之和:param args::return:"""try:sum = 0for num in args:sum+=numexcept Exception as error:self.getLogger().error("计算多个数之和有异常:\n"+str(error))self.getLogger().info(f"计算多个数之和={sum}")return sumif __name__ == '__main__':FrameLog().sum(9,2,3)FrameLog().sum_two(1,2)