当前位置: 首页 > news >正文

python自动化学习--3.8python操作EXCEL文件python日志收集处理

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)

相关文章:

  • STM32F103学习笔记(七) PWR电源管理(原理篇)
  • 糖尿病性视网膜病变(DR)的自动化检测和分期
  • 【element-ui】el-select multiple多选,表单校验问题解决方法
  • stm32——hal库学习笔记(ADC)
  • PDF Expert for Mac v3.9.2中文激活版下载
  • v-rep--websocket接口
  • 中介者模式(Mediator Pattern)
  • Adobe Acrobat DC中如何合并pdf并生成目录
  • 云时代【4】—— 资源隔离与控制技术
  • 原码,反码,补码
  • 嵌入式烧录报错:板端IP与PC的IP相同
  • STM32控制max30102读取血氧心率数据(keil5工程)
  • js实现文件下载,并传给后端
  • Linux 软链接与硬链接
  • 【MySQL】_自连接与子查询
  • JS 中的深拷贝与浅拷贝
  • 【刷算法】从上往下打印二叉树
  • Android系统模拟器绘制实现概述
  • Docker: 容器互访的三种方式
  • go append函数以及写入
  • Nodejs和JavaWeb协助开发
  • 机器学习中为什么要做归一化normalization
  • 如何选择开源的机器学习框架?
  • 手写一个CommonJS打包工具(一)
  • 微信开放平台全网发布【失败】的几点排查方法
  • 用mpvue开发微信小程序
  • 用Python写一份独特的元宵节祝福
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (AngularJS)Angular 控制器之间通信初探
  • (C语言)fgets与fputs函数详解
  • (k8s中)docker netty OOM问题记录
  • (附源码)ssm码农论坛 毕业设计 231126
  • (附源码)计算机毕业设计大学生兼职系统
  • (六)激光线扫描-三维重建
  • (一)SpringBoot3---尚硅谷总结
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • .Net Redis的秒杀Dome和异步执行
  • .net 调用php,php 调用.net com组件 --
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • .NET单元测试
  • .NET的微型Web框架 Nancy
  • .net快速开发框架源码分享
  • .ui文件相关
  • @TableId注解详细介绍 mybaits 实体类主键注解
  • [ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(十)RCE (远程代码/命令执行漏洞)相关面试题
  • [ 隧道技术 ] cpolar 工具详解之将内网端口映射到公网
  • [ 隧道技术 ] 反弹shell的集中常见方式(二)bash反弹shell
  • [BZOJ1053][HAOI2007]反素数ant
  • [BZOJ2208][Jsoi2010]连通数