Logging

logging的level

DEBUG>INFO>WARNING>ERROR>CRITICAL

import logginglogging.basicConfig(level=logging.ERROR)logging.debug("this is debug")
logging.warning("hello")
logging.info("hi")无输出因为ERROR<输出任意一个等级

logging.basicConfig

filename代表输出的都放到这个文件

filemode='w'代表写入模式,每次写入前都要先把文件清空写入,而不设置则是'a'append追加模式

import loggingprint("this is logging")logging.basicConfig(filename='log.log',filemode='w',level=logging.DEBUG)
logging.debug("this is the debug log")

logging.debug变量

需要配置encoding='utf-8'否则乱码

import loggingprint("this is logging")logging.basicConfig(filename='log.log',encoding='utf-8',filemode='a',level=logging.DEBUG)
logging.debug("this is the debug log")
name='qlxr'
age=24
logging.debug("姓名 %s 年龄 %d",name,age)
logging.debug("姓名 %s 年龄 %d"%(name,age))
logging.debug("姓名 {} 年龄 {}".format(name,age))
logging.debug(f"姓名 {name} 年龄 {age}")DEBUG:root:this is the debug log
DEBUG:root:���� qlxr ���� 24
DEBUG:root:this is the debug log
DEBUG:root:���� qlxr ���� 24
DEBUG:root:���� qlxr ���� 24
DEBUG:root:���� qlxr ���� 24
DEBUG:root:���� qlxr ���� 24
DEBUG:root:this is the debug log
DEBUG:root:姓名 qlxr 年龄 24
DEBUG:root:姓名 qlxr 年龄 24
DEBUG:root:姓名 qlxr 年龄 24
DEBUG:root:姓名 qlxr 年龄 24

logging%()s特定字符

%(asctime)s:时间 datefmt(设置时间格式)

%(levelname)s:等级

%(filename)s:运行的文件

%(lineno)s:程序运行行数

%(message)s:debug信息

import logging
logging.basicConfig(format="%(asctime)s %(levelname)s %(filename)s %(lineno)s %(message)s",datefmt="%Y-%m-%d %H:%M:%S",level=logging.DEBUG)
logging.debug("清凉夏日")2022-03-21 19:56:54 DEBUG rizhistudy.py 23 清凉夏日

深入

# -*- codeing = utf-8 -*-
# @Time : 2022/3/22 20:48
# @Author : 何潇然
# @File : demo2duixiang.py
# @Software: PyCharm
import logging#记录器
logger=logging.getLogger("applog")
logger.setLevel(logging.DEBUG)#logger先行过滤#处理器
consolehandler=logging.StreamHandler()
consolehandler.setLevel(logging.DEBUG)#控制台输出DEBUG级别#如果没有给handler指定日志级别,将使用logger级别
filehandler=logging.FileHandler(filename="log.log")
filehandler.setLevel(logging.INFO)#文件中输出INFO级别#formatter格式
formatter=logging.Formatter("%(asctime)s %(levelname)s %(filename)s %(lineno)s %(message)s")#给处理器设置格式
consolehandler.setFormatter(formatter)
filehandler.setFormatter(formatter)#记录器设置处理器
logger.addHandler(consolehandler)
logger.addHandler(filehandler)logger.debug("this is debug log")
logger.info("this is info log")
logger.warning("this is warning log")
logger.error("this is error log")
logger.critical("this is critical log")

通过配置文件进行logging

attention!:配置文件里禁制使用中文 注释也不行 否则读取格式会出错


[loggers]
keys=root,applog[handlers]
keys=fileHandler,consoleHandler,TimedRotatingFileHandler[formatters]
keys=simpleFormatter[logger_root]
level=DEBUG
handlers=consoleHandler,fileHandler#[logger_applog]
level=DEBUG
handlers=TimedRotatingFileHandler,consoleHandler
qualname=applog#logging.getLogger('applog')
propagate=0[handler_consoleHandler]
class=StreamHandler
args=(sys.stdout,)
level=DEBUG
formatter=simpleFormatter[handler_TimedRotatingFileHandler]
class=handlers.TimedRotatingFileHandler
args=('applog.log','midnight',1,0)#midnight每到12点午夜 delay 1s推迟1s 0保存为log的日志并不删除
level=DEBUG
formatter=simpleFormatter[handler_fileHandler]
class=FileHandler
args=('rootlog.log','w')
formatter=simpleFormatter[formatter_simpleFormatter]
formatter=%(asctime)s|%(levelname)8s|%(filename)s[:%(lineno)d]|%(message)s
datefmt=%Y-%m-%d %H:%M:%S

Numpy

NumPy最重要的一个特点就是其N维数组对象(即ndarray),该对象是一个快速而灵活的大数据集容器。你可以利用这种数组对整块数据执行一些数学运算,其语法跟标量元素之间的运算一样。

data3=np.random.randn(2,3,4)
print(data3.shape)
print(data3)[[[-0.22280369 -0.64911247 -1.82073536 -0.11877401][ 0.05232314 -1.06563146  1.45031713  0.42216378][-0.0231252  -1.22874131  0.9428394   1.00117319]][[-0.27866493 -1.26631694 -2.19427966 -0.41571251][ 0.46575417 -0.28105551  1.25212153 -1.72946444][ 0.53935346 -0.21542028  1.13053317  0.68798606]]]

使用random.randn(x,y)x和y代表维度(几行几列),函数会返回一个[0.0,1.0)之间的一个随机数值。(x,y,z)x代表几组,y、z代表维度

data1.shape 查看data1的维度

data1.type 查看data1数据类型

np.random

#需求:人的步伐为1或者-1 输出1000步的漫步图
import random
import matplotlib.pyplot as pltposition=0
walk=[position]
steps=1000
for i in range(steps):step=1 if random.randint(0,1) else -1position+=stepwalk.append(position)
walk=np.array(walk)
print(walk)
print("min"+str(walk.min()))
print("max"+str(walk.max()))
plt.plot(walk[:200])
plt.show()

random.randint(x,y)生成[x,y]范围内的整数

np.random.randint(x,y)生成[x,y)范围内的整数

import random
import matplotlib.pyplot as pltsteps=100
nsteps=10
data=np.random.randint(0,2,size=(nsteps,steps))
dataresult=np.where(data>0,1,-1)
walks=dataresult.cumsum(1)
print(data)
print(walks)
print(walks.max())
print(walks.min())
  • cumsum(0):实现0轴上的累加:以最外面的数组元素为单位,以[[1,2,3],[8,9,12]]为开始实现后面元素的对应累加
  • cumsum(1):实现1轴上的累加:以中间数组元素为单位,以[1,2,3]为开始,实现后面元素的对应累加
  • cumsum(2):实现2轴上的累加:以最里面的元素为累加单位,即1为开始,实现后面的元素累加

Python各种包学习相关推荐

  1. Python常用包学习(四)——pandas

    笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值,找寻数据的秘密,笔者认为,数据的价值不仅仅只体现在企业中,个人也可以体会到数据的魅力,用技术力量探索行为密码,让大数据 ...

  2. python - mysql接口包学习笔记

    测试环境:win10 64X Python 3.10.0 Anaconda3 python - mysql接口包 使用python连接mysql,是需要三方包的,目前主流的方式就是pymysql 和 ...

  3. python plt包_Python 数据可视化-Matplotlib包学习笔记(一)

    Python 数据可视化 本文主要参照Matplotlib的官方教程进行整理,作为个人的学习笔记进行分享,欢迎相互讨论. Matplotlib包学习笔记(一) 本文主要简单介绍一下Matplotlib ...

  4. python数据包pandas_python_pandas学习

    numPy pandas的数据结构介绍 简介 Pandas [1] 是python的一个数据分析包,最初由AQR Capital Management于2008年4月开发,并于2009年底开源出来,目 ...

  5. TensorFlow常用Python扩展包

    TensorFlow常用Python扩展包 TensorFlow 能够实现大部分神经网络的功能.但是,这还是不够的.对于预处理任务.序列化甚至绘图任务,还需要更多的 Python 包. 下面列出了一些 ...

  6. 如何用 OpenCV、Python 和深度学习实现面部识别?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达本文转自|新机器视觉 Face ID 的兴起带动了一波面部识别技术热 ...

  7. 【python教程入门学习】Python零基础入门爬虫项目

    Python入门爬虫项目 这是我的第一个python项目,分享给大家. 需求 我们目前正在开发一款产品其功能大致是:用户收到短信如:购买了电影票或者火车票机票之类的事件.然后app读取短信,解析短信, ...

  8. python 第三方包自动导入_7行代码,彻底告别python第三方包import导入问题!

    最近有不少小伙伴咨询关于pyton第三方包导入的问题,今天我们就来聊聊第三方包导入那些事. 随着对python学习的渐入臻境,越来越多的小伙伴们开始导入自己所需的第三方包,实现各种各样的功能.但是,他 ...

  9. python怎么安装第三方库-vs2017怎么安装python第三方包

    vs2017有独立的python环境:所以想在vs2017开发python并使用第三方包,需要在vs2017中操作,完成第三方包的安装. 一,查看vs2017有哪些版本的python,当前使用的是哪个 ...

最新文章

  1. 光电耦合NEC2051 的输入输出特性
  2. RedHat 6配置DNS服务实现主从同步与正反向解析
  3. HTML 5 全局属性
  4. python滚动文本框_调整滚动Tkinter文本框的大小
  5. java 重载 equals_实现Student类的equals重载函数
  6. 面试精讲之面试考点及大厂真题 - 分布式专栏 09 缓存必问:Reids持久化,高可用集群
  7. D3 Handling Events
  8. python dtype o_python – 为什么dtype = str的空数据框填充“n”?
  9. Linux电脑弹出网络认证,linux局域网Dr.COM宽带认证客户端上网指南
  10. 将pycharm汉化
  11. MEMS - 基础 - 悬臂梁的挠度
  12. 学生考勤及行为管理系统_一种智能学生考勤管理方法及系统与流程
  13. 2019腾讯校招客户端方向面经(已拿offer)
  14. ISCOM6800瑞斯康达使用方法
  15. 动感影集制作音乐相册,超简单实用的方法!风靡QQ空间、微信、抖音
  16. AX210 PCIE网卡 安装记录(linux)
  17. 移动流量转赠给好友_移动的号怎么赠送流量给好友?
  18. vr 瞬移_瞬移演示
  19. 最老程序员创业开发实训2---采用MVC架构的应用Splash页面实现
  20. 文本表示(Text Representation)之词集模型(SOW)词袋模型(BOW)TF-IDF模型

热门文章

  1. windows 重新启动 postgresq
  2. cdoj1638 红藕香残玉簟秋,轻解罗裳,独上兰舟。
  3. C/C++:实现象棋游戏
  4. linux 命令:su 详解
  5. 各种时间概念的详细解释 恒星时世界时 协调世界时
  6. Java调用Bartender控制条码打印机
  7. hihocoder王胖浩与三角形【海伦公式+分类讨论】
  8. 工作迷茫,想换工作了!
  9. python ogr_解决python ogr shp字段写入中文乱码的问题
  10. 典型的计算机串行和并行总线,串行总线和并行总线的区别