python全栈学习记录(十七)logging、json与pickle、time与datatime、random

logging、json与pickle、time与datatime、random

文章目录

  • logging、json与pickle、time与datatime、random
  • 一、logging
  • 二.json与pickle
  • 三.time与datatime
  • 四.random

一、logging

logging模块用来记录日志信息。

import logging
# 进行基本的日志配置
logging.basicConfig(
filename='access.log',
#format表示日志写入的格式
format='%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s',
#datefmt表示日志时间格式设置
datefmt='%Y-%m-%d %H:%M:%S %p',
#level表示阈值
level=10
)# 日志级别遵循原则:自下而上进行匹配,不小于设定阈值的日志会被记录(默认30)
#debug-》info-》warning-》error-》critical
logging.debug('调试信息') #10
logging.info('正常信息') #20
logging.warning('不好啦着火啦') #30
logging.error('报错信息') #40
logging.critical('严重错误信息') #50

format的具体参数可以参考下面的图片:
在这里插入图片描述
使用logging模块时,一般参照如下的格式:

import logging.config
# 定义三种日志输出格式
standard_format = '%(asctime)s - %(filename)s:%(lineno)d - %(name)s - %(levelname)s - %(message)s'
simple_format = '%(asctime)s - %(levelname)s - %(message)s'path=r'日志文件路径'
data='%Y-%m-%d %H:%M:%S %p'LOGGING_DIC = {'version': 1,'disable_existing_loggers': False,#此处将配置的format参数传入'formatters': {'formatter1': {'format': standard_format,'datefmt':data},'formatter2': {'format': simple_format,'datefmt':data},},#filters负责筛选日志信息,目前用不到'filters': {},'handlers': {#打印到终端的日志'sm': {'level': 'DEBUG','class': 'logging.StreamHandler',  # 打印到屏幕'formatter': 'formatter2' # 日志输出格式,与上方传入formatters的相对应},#保存到文件的日志,收集info及以上的日志'h1': {'level': 20,# 阈值,也可以写数字'class': 'logging.FileHandler',  # 保存到文件'formatter': 'formatter1','filename': path,  # 日志文件'encoding': 'utf-8',  # 日志文件的编码,再也不用担心中文log乱码了},},'loggers': {#logging.getLogger找不到匹配的日志标题时,会使用''中的日志格式设置'': {'handlers': ['h1','sm'],# 此处表示日志使用到的输出方式,与上方的handlers相对应'level': 'DEBUG', # 阈值,两处阈值设置不一时,以阈值小的为准'propagate': False,  # 向上(更高level的logger)传递},#日志设置的标题要与logging.getLogger传入的相匹配'日志标题':{'handlers': ['h1'],'level': 30,'propagate': False,},},
}
#将配置字典加载到logging中
logging.config.dictConfig(LOGGING_DIC)
log=logging.getLogger('日志标题')
#下面为具体的日志信息
logging.debug('调试信息')
logging.info('正常信息')
logging.warning('不好啦着火啦')
logging.error('报错信息')
logging.critical('严重错误信息')

二.json与pickle

json、pickle模块的作用是将数据序列化。
json保存的数据可以与多种语言交互,但是它只支持python部分的类型,如字典、列表、元组、字符串、数字、True、False、None等。
pickle只能用于python语言,但是它支持python的所有数据类型。

import json
#将python数据a转为json格式
b=json.dumps(a)
#将json格式的数据b转为python数据
a=json.loads(b)#将python数据a转为json并写入文件,f表示文件句柄
json.dump(a,f)
#从文件中读取json数据并转为python数据b
b=json.load(f)

注:一个文件一般只存一个json数据

import pickle
#将python数据a转为pickle格式
b=pickle.dumps(a)
#将pickle格式的数据b转为python数据
a=pickle.loads(b)#将python数据a转为pickle并写入文件,f表示文件句柄
pickle.dump(a,f)
#从文件中读取pickle数据并转为python数据b
b=pickle.load(f)

三.time与datatime

import time
#获取时间戳
time.time()
<<<1726914530.610406#获取结构化时间
time.localtime()
<<<time.struct_time(tm_year=2024, tm_mon=9, tm_mday=21, tm_hour=18, tm_min=27, tm_sec=21, tm_wday=5, tm_yday=265, tm_isdst=0)
#可以通过上面结构化时间的key取出具体的值
time.localtime().tm_wday
<<<5#获取格式化时间
time.strftime('%Y-%m-%d %H:%M:%S')
<<<2024-09-21 18:30:07#时间戳、结构化时间、格式化时间的转换
#时间戳转结构化时间转格式化时间
time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
#格式化时间转结构化时间转时间戳
time.mktime(time.strptime('2024-09-21 18:30:07','%Y-%m-%d %H:%M:%S'))#程序休眠3s
time.sleep(3)#计时器,从第一次调用开始计时,再次调用会记录下调用时经过的时间
time.perf_counter()#与time.localtime用法相同,不过为世界标准时区下的时间
time.gmtime()#将时间戳转为星期 月 日 时:分:秒 年的格式
time.ctime()
<<<Sat Sep 21 18:46:12 2024#将结构化时间转为星期 月 日 时:分:秒 年的格式
time.asctime()
import datetime
#获取当前时间(精确为微秒)
datetime.datetime.now()
#获取当前时间(精确为秒)
datetime.datetime.now().replace(microsecond=0)
#修改获取时间的年份
datetime.datetime.now().replace(year=2020)
#计算7天后的时间
(datetime.datetime.now()+datetime.timedelta(days=7)).replace(microsecond=0)
#时间戳转化为格式化时间
import time
datetime.datetime.fromtimestamp(time.time()).replace(microsecond=0)

四.random

random模块通常用来取随机数

import random
#生成一个0~1的随机小数,概率服从高斯分布
random.random()
#生成一个1~10的随机整数,概率服从均匀分布
random.randint(1,10)
#生成一个1~10的随机小数,概率服从均匀分布
random.uniform(1,10)
#获取列表中随机一个值,服从均匀分布
random.choice(['1',2,3])
#获取列表中随机两个值,选的元素不会重复
random.sample(['1',2,3],2)
#获取列表中随机两个值,选的元素可以重复
random.choices(['1',2,3],k=2)
#打乱可变类型的顺序
random.shuffle()
#随机数种子
random.seed()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/430297.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全面详尽的 PHP 环境搭建教程

目录 目录 PHP 环境搭建概述 在 Windows 上搭建 PHP 环境 使用集成环境 XAMPP 安装步骤 配置和测试 常用配置 手动安装 Apache、PHP 和 MySQL 安装 Apache 安装 PHP 安装 MySQL 配置 PHP 连接 MySQL 在 Linux 上搭建 PHP 环境 使用 LAMP 方案 安装 Apache 安装 …

zabbix入门单机部署

zabbix官网 1进入官网后选择右上角Download 选择你要的版本以及需要的组件&#xff0c;网页下方会自动生成需要操作的步骤 &#xff0c;跟着步骤一步一步安装即可&#xff1a; 这里跟着官网步骤一步步走下去就可以了 但是需要注意的是安装 yum install centos-release-scl源…

C++20 std::format

一、前言 1、传统 C 格式化的问题与挑战 可读性差&#xff1a;使用 C 中的 printf 和 scanf 家族函数进行格式化输出和输入时&#xff0c;它们的语法较为复杂&#xff0c;难以阅读。在较大的代码项目中&#xff0c;可读性差会导致维护困难。类型安全性差&#xff1a;printf 和…

vue入门小练习

文章目录 1.案例需求2.编程思路3.案例源码4.小结 1.案例需求 一个简易的计算器&#xff0c;其效果如下&#xff1a; 图片切换&#xff0c;其效果如下&#xff1a; 简易记事本&#xff0c;其效果如下&#xff1a; 2.编程思路 1.这个Vue.js应用实现了一个简单的计算器&#x…

中小微企业生产管理利器-- 超轻量生产工单系统

为解决中小微制造企业的生产管理难题&#xff0c;搭贝官方自主设计并推出了一款开箱即用的超轻量「生产工单系统」应用。该系统具备5分钟上手&#xff0c;3小时落地的优势&#xff0c;无需实施即可轻松实现生产任务的敏捷管理&#xff0c;同时支持自定义修改&#xff0c;能够适…

PostgreSQL的学习心得和知识总结(一百五十一)|[performance] PostgreSQL列对齐

目录结构 注&#xff1a;提前言明 本文借鉴了以下博主、书籍或网站的内容&#xff0c;其列表如下&#xff1a; 1、参考书籍&#xff1a;《PostgreSQL数据库内核分析》 2、参考书籍&#xff1a;《数据库事务处理的艺术&#xff1a;事务管理与并发控制》 3、PostgreSQL数据库仓库…

鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别

一、介绍 鸟类识别系统。本系统采用Python作为主要开发语言&#xff0c;通过使用加利福利亚大学开源的200种鸟类图像作为数据集。使用TensorFlow搭建ResNet50卷积神经网络算法模型&#xff0c;然后进行模型的迭代训练&#xff0c;得到一个识别精度较高的模型&#xff0c;然后在…

HarmonyOS应用开发(组件库)--组件模块化开发、工具包、设计模式(持续更新)

致力于&#xff0c;UI开发拿来即用&#xff0c;提高开发效率 正则表达式...手机号校验...邮箱校验 文件判断文件是否存在 网络下载下载图片从沙箱中图片转为Base64格式从资源文件中读取图片转Base64 组件输入框...矩形输入框...输入框堆叠效果&#xff08;用于登录使用&#xf…

Django 请求配置

http请求配置 请求流程 urls.py配置 from first_app import viewsurlpatterns [path(admin/, admin.site.urls),path(test/,views.first_test), ] views.py配置 from django.shortcuts import render,HttpResponse# Create your views here. def first_test(request):prin…

Linux相关概念和重要知识点(6)(make、makefile、gdb)

1.make、makefile &#xff08;1&#xff09;什么是make、makefile&#xff1f; 在我们写完代码后&#xff0c;要编译运行&#xff0c;如果有多个.c文件就需要每次都自己用gcc -o来处理&#xff0c;这十分麻烦。当我们想要自定义多个文件的处理时&#xff0c;我们会浪费很多时…

全国职业院校技能大赛(大数据赛项)-平台搭建Spark、Scala笔记

Spark作为一个开源的分布式计算框架拥有高效的数据处理能力、丰富的生态系统、多语言支持以及广泛的行业应用。Scala是一种静态类型的编程语言&#xff0c;它结合了面向对象编程和函数式编程的特性&#xff0c;被誉为通用的“大数据语言”。而二者的结合更能迸发出新奇的化学反…

ER论文阅读-Decoupled Multimodal Distilling for Emotion Recognition

基本介绍&#xff1a;CVPR, 2023, CCF-A 原文链接&#xff1a;https://openaccess.thecvf.com/content/CVPR2023/papers/Li_Decoupled_Multimodal_Distilling_for_Emotion_Recognition_CVPR_2023_paper.pdf Abstract 多模态情感识别&#xff08;MER&#xff09;旨在通过语言、…

MODELS 2024:闪现奥地利,现场直击报道

周末出逃&#xff01;小编闪现至奥地利林茨&#xff0c;亲临第27届MODELS 2024国际会议&#xff0c;以第一视角引领你深入会议现场&#xff0c;领略其独特风采。利用午饭时间&#xff0c;小编紧急码字&#xff0c;只为第一时间将热点资讯呈现给你~ 会议介绍&#xff1a; MODEL…

数据结构篇--折半查找【详解】

折半查找也叫做二分查找或者对数查找&#xff0c;是一种在有序数组中查找特定元素的查找算法。 折半查找的算法步骤如下&#xff1a; 将目标关键字key与数组中的中间元素比较&#xff0c;若相等则查找成功。key大于中间元素&#xff0c;就到数组中大于中间元素的部分进行查找&…

吴恩达深度学习笔记:卷积神经网络(Foundations of Convolutional Neural Networks)2.1-2.2

目录 第四门课 卷积神经网络&#xff08;Convolutional Neural Networks&#xff09;第二周 深度卷积网络&#xff1a;实例探究&#xff08;Deep convolutional models: case studies&#xff09;2.1 为什么要进行实例探究&#xff1f;&#xff08;Why look at case studies?&…

【ComfyUI】自定义节点ComfyUI_LayerStyle——模仿 Adob​​e Photoshop 的图层样式、图层混合、图文混合、添加不可见水印

官方代码&#xff1a;https://github.com/chflame163/ComfyUI_LayerStyle.git 相关资料下载&#xff1a;https://pan.baidu.com/s/16vmPe6-bycHKIjSapOAnZA?pwd0919 简介 在ComfyUI画布点击右键 - Add Node, 找到 “&#x1f63a;dzNodes”。 节点根据功能分为5组&#xff…

深入Android UI开发:从自定义View到高级布局技巧的全面学习资料

在Android开发的世界中&#xff0c;UI设计和实现是吸引用户的关键。本文将为您介绍一套全面的Android UI开发学习资料&#xff0c;包括详细的学习大纲、PDF文档、源代码以及配套视频教程&#xff0c;旨在帮助您从自定义View到高级布局技巧&#xff0c;全面提升您的UI开发技能。…

基于SpringBoot+Vue+MySQL的电影院购票管理系统

系统展示 用户前台界面 管理员后台界面 系统背景 随着电影产业的蓬勃发展&#xff0c;电影院已成为人们休闲娱乐的重要场所。然而&#xff0c;传统的电影院购票管理系统存在诸多不便&#xff0c;如购票流程繁琐、排队时间长、无法提前选座等问题&#xff0c;给观众的观影体验带…

uni-data-select 使用 localdata 传入数据出现 不回显 | 下拉显示错误的 解决方法

目录 1. 问题所示2. 正确Demo3. 下拉显示错误(Bug复现)4. 下拉不回显(Bug复现)1. 问题所示 uni-app的下拉框uni-data-select 使用 localdata 传入数据 主要总结正确的Demo以及复现一些Bug 数据不回显数据不显示下拉选项2. 正确Demo 详细的基本知识推荐阅读:uni-app中的…

java项目之健身房管理系统源码(springboot)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的健身房管理系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 健身房管理系统的主要使用…