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()
相关文章:

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( fi…...
【艾思科蓝】JavaScript在数据可视化领域的探索与实践
【ACM出版 | EI快检索 | 高录用】2024年智能医疗与可穿戴智能设备国际学术会议(SHWID 2024)_艾思科蓝_学术一站式服务平台 更多学术会议请看 学术会议-学术交流征稿-学术会议在线-艾思科蓝 目录 引言 JavaScript可视化库概览 D3.js基础入门 1. 引入…...

【标准库的典型内容】std::declval
一、 d e c l v a l declval declval的基本概念和常规范例 s t d : : d e c l v a l std::declval std::declval 是 C 11 C11 C11标准中出现的一个函数模板。这个函数模板设计的比较奇怪(没有实现,只有声明),因此无法被调用&…...
深入了解package.json文件
在前端项目开发中,我们经常会遇到package.json文件。这个文件不仅是一个简单的配置文件,它还承担了项目管理的重任。下面,我们将深入探讨package.json文件的各个字段和作用,并通过实例来帮助你更好地理解和使用它。 package.json…...
【基础知识】网络套接字编程
套接字 IP地址 port(端口号) socket(套接字) socket常见API //创建套接字 int socket(int domain, int type, int protocol); //绑定端口 int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen); //监听套接字…...

小程序地图展示poi帖子点击可跳转
小程序地图展示poi帖子点击可跳转 是类似于小红书地图功能的需求 缺点 一个帖子只能有一个点击事件,不适合太复杂的功能,因为一个markers只有一个回调回调中只有markerId可以使用。 需求介绍 页面有地图入口,点开可打开地图界面地图上展…...

传统到AI 大数据分析的演变,颠覆智慧水电的未来?
传统到AI 大数据分析的演变,颠覆智慧水电的未来? 前言传统到AI 大数据分析的演变 前言 水电作为一种重要的能源形式,一直在我们的生活中扮演着至关重要的角色。而如今,随着科技的飞速发展,智慧水电和 AI 大数据应用的…...
while语句
1.while使用 打印1-10 #include<stdio.h> int main() {int a 1;while (10 > a){printf("%d\n", a);a 1;}return 0; } 2.while语句中的break,continue break: 跳出while语句 #include<stdio.h> int main() {int a 0;wh…...

机器学习(西瓜书)第 10 章 降维与度量学习
10.1 k近邻学习kNN k 近邻(k-Nearest Neighbor,简称kNN)学习是一种常用的监督学习方法,其工作机制非常简单:给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练样本,然后基于这k个 “邻居”的信息来进行预测.通常,在…...

828华为云征文 | 云服务器Flexus X实例,Docker集成搭建Halo博客平台
828华为云征文 | 云服务器Flexus X实例,Docker集成搭建Halo博客平台 Halo博客平台是一款基于Java的开源博客系统,以其简单易用、功能强大、美观大方等特点而受到广泛欢迎,采用了多种先进的技术框架,包括Freemarker模板引擎、Vue.j…...
Android carrier_list.textpb 和apns-conf.xml 配置文件参考
简介 针对SIM 的APN配置是在apns-conf.xml,而Google源码中有apns-full-conf.xml案例参考,是加入了carrier_id的统一配置,就不用单独的一张张卡配了。 apns-conf.xml和apns-full-conf.xml有什么区别? 在于它们包含的配置内容和复杂性,full包含了carrier_id字段。 详细代…...
二期 1.4 Nacos安装部署 - Window版
本文目录 Nacos支持三种部署模式环境准备下载Nacos启动登录服务注册与查看Nacos支持三种部署模式 单机模式 - 用于测试和单机试用。集群模式 - 用于生产环境,确保高可用。多集群模式 - 用于多数据中心场景。以 Window单机模式 抛转引玉,其它部署方式参考官方文档: https://n…...
vue3基础九问,你会几问
1. Vue是什么? Vue.js 是一个用于构建用户界面的渐进式 JavaScript 框架。它的核心库只关注视图层,采用自下而上的增量开发设计,这使得你可以将 Vue 轻松地整合到现有的项目中,或者与其他前端库一起使用。Vue 的目标是通过提供反…...

Linux系统应用之知识补充——OpenEuler(欧拉)的安装和基础配置
前言 这篇文章将会对OpenEuler的安装进行详解,一步一步跟着走下去就可以成功 注意 :以下的指令操作最好在root权限下进行(即su - root) ☀️工贵其久,业贵其专! 1、OpenEuler的安装 这里我不过多介绍&a…...
Git(4):修改git提交日志
修改最新一次提交的信息 git commit --amend 修正提交信息 在打开的编辑器中修改信息,保存并退出,Git 会用新的提交信息替换掉旧的提交信息(commit-id 变化)。也可以使用 git commit --amend -m "" 直接修改日志&#…...

【深度学习】(1)--神经网络
文章目录 深度学习神经网络1. 感知器2. 多层感知器偏置 3. 神经网络的构造4. 模型训练损失函数 总结 深度学习 深度学习(DL, Deep Learning)是机器学习(ML, Machine Learning)领域中一个新的研究方向。 从上方的内容包含结果,我们可以知道,在学习深度学…...

测试文件和数据库文件
接口测试 flaks项目入口文件manage.py路由配置 import requests#首先面向对象作封装,避免相同代码反复编写 class HttpApiTest:def test_get(self,url,data{}): #用来测试get方法的接口 #self通过共享self类中间的变量 #url用来请求接口 #data可传可不传res reques…...
redis集群模式连接
目录 一:背景 二:实现过程 三:总结 一:背景 redis集群通过将数据分散存储在多个主节点上,每个主节点可以有多个从节点进行数据的复制,以此来实现数据的高可用性和负载均衡。在集群模式下,客户…...

Linux高级I/O:多路转接模型
目录 一.常见的IO模型介绍二.多路转接I/O1.select1.1.函数解析1.2. select特点和缺点1.3.基于 select 的多客户端网络服务器 2.poll2.1.poll函数解析2.2.poll特点和缺点2.3.基于poll的tcp服务器 3.epoll3.1.系列函数解析3.2.epoll原理解析2.3.基于 select 的多客户端网络服务器…...
MongoDB Limit 与 Skip 方法
MongoDB Limit 与 Skip 方法 MongoDB 是一个流行的 NoSQL 数据库,它提供了灵活的数据存储和强大的查询功能。在处理大量数据时,我们常常需要限制返回的结果数量或者跳过一部分结果,这时就可以使用 MongoDB 的 limit 和 skip 方法。 Limit 方…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...

NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...

vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

基于Java+VUE+MariaDB实现(Web)仿小米商城
仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意:运行前…...
0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化
是不是受够了安装了oracle database之后sqlplus的简陋,无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话,配置.bahs_profile后也能解决上下翻页这些,但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可,…...