Python常用模块 之 datetime模块和logging模块实战使用
Posted 孤寒者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python常用模块 之 datetime模块和logging模块实战使用相关的知识,希望对你有一定的参考价值。
目录:
每篇前言:
🏆🏆作者介绍:【孤寒者】—CSDN全栈领域优质创作者、HDZ核心组成员、华为云享专家Python全栈领域博主、CSDN原力计划作者
- 🔥🔥本文已收录于Python全栈系列专栏:《Python全栈基础教程》
- 🔥🔥热门专栏推荐:《Django框架从入门到实战》、《爬虫从入门到精通系列教程》、《爬虫高级》、《前端系列教程》、《tornado一条龙+一个完整版项目》。
- 📝📝本专栏面向广大程序猿,为的是大家都做到Python从入门到精通,同时穿插有很多很多习题,巩固学习。
- 🎉🎉订阅专栏后可私聊进一千多人Python全栈交流群(手把手教学,问题解答); 进群可领取Python全栈教程视频 + 多得数不过来的计算机书籍:基础、Web、爬虫、数据分析、可视化、机器学习、深度学习、人工智能、算法、面试题等。
- 🚀🚀加入我一起学习进步,一个人可以走的很快,一群人才能走的更远!
1. datatime模块习题:
①题目:
- 写一个程序能接收用户输入出生日期从而计算出用户活了多久。
②解题:
from datetime import datetime
def get_day(birthday):
birthday = datetime.strptime(birthday,'%Y-%m-%d')
now = datetime.now()
days = now - birthday
print('你从出生到现在已经过去了%s天'%days.days)
birthday = input('请输入您的生日\\n(格式为:年-月-日):')
get_day(birthday)
2.logging模块习题:
①题目:
- 使用logging模块化组件实现能记录错误信息到文件的程序,并在程序里制造错误,看错误信息是否被记录下来。
②解题:
(1)比较low的实现:
import logging
# 实例化
my_logger = logging.getLogger('python')
# 进去文件 FileHandler
fh = logging.FileHandler('guhanzhe.log',encoding='utf-8')
# 设置级别为INFO
fh.setLevel(logging.INFO)
# 格式化输出
formatter = logging.Formatter(
'时间:%(asctime)s'
'日志级别%(levelname)s'
'日志消息:%(message)s'
)
# 把格式添加到文件管理者
fh.setFormatter(formatter)
my_logger.addHandler(fh) # 让实例化对象知道格式化输出
if __name__ == '__main__':
try:
a = 1/0
except Exception as e:
my_logger.error(e)
(2)没那么low的实现:
import logging
def lo():
# 1.创建记录器并设置级别
logger = logging.getLogger('guhanzhe')
logger.setLevel(logging.DEBUG)
# 2.写入到文件
fh = logging.FileHandler('guhanzhe.log', encoding='utf-8')
# 3.格式
formatter = logging.Formatter(
'时间:%(asctime)s'
'日志级别:%(levelname)s'
'日志消息:%(message)s'
'日志名称:%(name)s'
)
# 格式器添加到处理器
fh.setFormatter(formatter)
# 处理器添加到记录器
logger.addHandler(fh)
return logger
log = lo()
try:
print(aa)
except Exception as e:
log.debug(e)
(3)再进阶一点的实现(使用装饰器):
import logging
def log(func):
def lo():
# 1.创建记录器并设置级别
logger = logging.getLogger('guhanzhe')
logger.setLevel(logging.DEBUG)
# 2.写入到文件
fh = logging.FileHandler('guhanzhe.log', encoding='utf-8')
# 3.格式
formatter = logging.Formatter(
'时间:%(asctime)s'
'日志级别:%(levelname)s'
'日志消息:%(message)s'
'日志名称:%(name)s'
)
# 格式器添加到处理器
fh.setFormatter(formatter)
# 处理器添加到记录器
logger.addHandler(fh)
result = func()
logger.error(result)
return lo
@log
def demo():
try:
print(aa)
except Exception as e:
return e
demo()
以上是关于Python常用模块 之 datetime模块和logging模块实战使用的主要内容,如果未能解决你的问题,请参考以下文章