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).value
    print(locaion, value)
    rows = sheet1.max_row
    cols = sheet1.max_column
    print(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  logging

class 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 logger

    def sum_two(self, x, y):
        """
                求多个数之和
                :param args:
                :return:
                """
        sum_two = 0
        try:
            sum_two = x + y
            self.getLogger().info(f"计算2个数之和={sum_two}")
            return sum_two
        except Exception as error:
            self.getLogger().error("计算2个数之和有异常:\n"+str(error))

    def sum(self, *args):
        """
        求多个数之和
        :param args:
        :return:
        """

        try:
            sum = 0
            for num in args:
                sum+=num

        except Exception as error:
            self.getLogger().error("计算多个数之和有异常:\n"+str(error))
        self.getLogger().info(f"计算多个数之和={sum}")
        return sum


if __name__ == '__main__':
    FrameLog().sum(9,2,3)
    FrameLog().sum_two(1,2)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值