2023.12.24 python高级学习,模块和包,日志,时间操作,json模块
2023-12-27 22:37:50
目录
模块和包
__name__ 代码中一般都会写 if __name__ =='__main__' :
该判断,用来限定某些代码只在执行该模块代码的时候才执行
包:
包里一定要有个__init__.py文件
inti:初始化
模块和包:用来组织Python代码
包 => 含有
__init__.py
文件的文件夹模块 => py文件
类 => class 【面向对象学习】
函数(方法)=> def
以上均不能以数字开头,也不能和python内置的一切重名
# from 模块 import 函数
from os import listdir
ret = listdir()
print(ret)
# import 模块
import os
ret = os.listdir()
print(ret)
# 用 as关键字 起别名
import os as winos
ret = winos.listdir()
print(ret)
from os import listdir as win_listdir
ret = win_listdir()
print(ret)
日志操作
debug????????调试消息
info? ? ? ? 普通消息
warning? ? ? ? 警告消息
error? ? ? ? 错误消息
critical? ? ? ? 严重错误
# import logger
# pip install loguru
from loguru import logger as log
# 日志文件名称
# {time} loguru包会自动填写文件创建的时间
# xxxx-xx-xx_xx-xx-xxxxxx 年 月 日 时 分 秒 微秒6位 【秒后3位的是毫秒 毫秒后3位是微妙】
logfile_path_str = './loguru_test_{time}.log'
# 日志保存,要先声明才有效
# log.add(logfile_path_str)
log.add(
sink=logfile_path_str, # 日志文件名
# 以下为可选参数
rotation='200KB', # 设定日志大小, 200k一个文件
compression='zip', # 设置压缩格式为zip
retention='72h', # 每隔72小时清理一次日志
serialize=True, # 默认为False,普通日志;True 把日志改成json格式
encoding='utf8', # 声明日志文件的编码格式
# level='WARNING' # 日志文件只记录WARNING及更严重级别的日志
)
"""
1. 参数 rotation
rotation='200KB', # 设定日志大小, 200k一个文件
rotation='14:00', # 每天中午14点创建新的日志文件
rotation='1 week', # 以周为单位,日志循环写入
2. 参数 compression='zip' # 支持多种压缩格式:
gz bz2 xz lzma tar tar.gz tar.bz2 tar.xz zip
3. level='WARNING' # 日志文件记录的级别,顺序如下:
DEBUG INFO SUCCESS WARNING ERROR CRITICAL
"""
生成的日志文件
# 自定义日志信息
log.debug('debug级别调试消息')
log.success('成功调用')
log.info('普通消息') # 常用
log.warning('警告消息')
log.error('错误消息')
log.critical('严重错误消息')
# 记录错误异常
try:
print(5/0)
except:
# 完整记录错误堆栈信息,显示内容和 traceback.format_exc() 一致
log.exception('错误消息')
# 关闭控制台输出,且不写入日志文件
log.remove(handler_id=None)
log.info('这个信息不回显示,111')
时间操作
import time
# 停止n秒
print(time.sleep(3))
# 1695539421.6926203秒 起始时间是1970年1月1日0点(unix纪元)
print(time.time()) # 时间戳 1695539421.6926203
# print(time.ctime()) # Sun Sep 24 15:16:49 2023
print(time.strftime('%Y-%m-%d %H:%M:%S')) # 2023-09-24 15:20:24
# 时间戳转日期,time.strftime函数多加一个参数
print(time.localtime()) # 不返回时间戳!
# time.struct_time(tm_year=2023, tm_mon=10, tm_mday=7, tm_hour=12, tm_min=0, tm_sec=35, tm_wday=5, tm_yday=280, tm_isdst=0)
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()))
# 日期转时间戳
print(time.mktime(
time.strptime( # 注意区别 strptime strftime
time.strftime('%Y-%m-%d %H:%M:%S'), # 格式化的时间:2023-09-24 15:20:24
'%Y-%m-%d %H:%M:%S' # 指定格式
)
))
json模块
# json是长得像字典的字符串,Python内置的json模块可以帮助我操作json
import json
my_dict = {'name': '职业法师刘海柱', 'age': 18}
# json.dumps():dict转json字符串,dumps==dump String
json_str = json.dumps(my_dict, ensure_ascii=False)
# ensure_ascii=False 是否使用ascii编码,默认为True
print(json_str, type(json_str)) # 双引号
print(my_dict, type(my_dict)) # 单引号
# json.loads():json字符串转dict,loads==load String
new_dict = json.loads(json_str)
print(new_dict, type(new_dict))
# json.dump() 将dict写入文件中,自动转换为json字符串
with open('./111.json', 'w', encoding='utf8') as f:
json.dump(my_dict, f, ensure_ascii=False)
# json.load() 将文件中json字符串读取出来,返回dict
with open('./111.json', 'r', encoding='utf8') as f:
new_dict2 = json.load(f)
print(new_dict2, type(new_dict2))
文章来源:https://blog.csdn.net/m0_49956154/article/details/135178365
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!