Python10/17-re模块/hashlib模块/logging模块
import logging # 1.日志的级别
# logging.debug("这是一个调试信息") # 10
# logging.info("常规信息") # 20
# logging.warning("警告信息") # 30
# logging.error("错误信息") # 40
# logging.critical("严重错误") # 50
# 在logging模块中有对应的常量用来标识级别
# 默认情况下 默认的级别30 WARNING 日志输出位置是控制台 # 2.自定定义日志的配置
# logging.basicConfig(
# filename="a.log",
# filemode="at",
# level=10,
# format="%(asctime)s %(levelname)s %(funcName)s %(lineno)s %(message)s",
# datefmt="%Y-%m-%d %X %p"
# )
#
# logging.debug("这又是调试信息") # 日志模块的四个核心角色
"""
1.logger 日志生成器
2.filter 过滤器
3.handler 处理器
4.formatter 格式处理器
""" # 1.创建一个日志生成器
# mylog = logging.getLogger("mylog")
# # 设置生成器级别
# mylog.setLevel(logging.DEBUG)
#
# # 2.搞一个日志处理器
# fh = logging.FileHandler("b.log",encoding="utf-8")
#
# # 3.搞一个格式处理器
# fm = logging.Formatter(
# "%(asctime)s %(levelname)s %(funcName)s %(lineno)s %(message)s",
# datefmt="%Y-%m-%d %X %p")
#
# # 4.将 三个对象进行关联
# mylog.addHandler(fh)
# fh.setFormatter(fm)
# # 测试
# mylog.debug("mylog 的 测试!") # # 日志的继承
# log1 = logging.getLogger("father")
# log2 = logging.getLogger("father.son")
# log3 = logging.getLogger("father.son.grandson")
#
# # 默认值True 标识 有继承关系 当子的日志产生日志时 给他父级以及父级以上都发一份
# # 如果不需要就设置False
# # log3.propagate = False
#
# fh = logging.FileHandler("c.log",encoding="utf-8")
#
# fm = logging.Formatter(
# "%(asctime)s %(levelname)s %(funcName)s %(lineno)s %(message)s",
# datefmt="%Y-%m-%d %X %p")
import logging.config
# 以字典来配置日志 传入一个字典对象 就不需要在编写上面那一堆代码
# logging.config.dictConfig()
# 流处理器
log1 = logging.getLogger("a")
# 输出到文件
fh = logging.FileHandler("c.log",encoding="utf-8")
# 输出到控制台
sh = logging.StreamHandler() log1.addHandler(sh)
log1.addHandler(fh)
fm = logging.Formatter(
"%(asctime)s %(levelname)s %(funcName)s %(lineno)s %(message)s",
datefmt="%Y-%m-%d %X %p")
sh.setFormatter(fm) log1.warning("测试2!")
"""
hash lib
hash是一种算法 是将一个任意长的数据 根据计算 得到一个固定长度特征码
特征: 不同输入 可能会有相同的结果 几率特别小
相同的输入 必然得到相同结果
由于散列(特征)的性质 从原理来看是不可能 反解 用来 验证 两个输入的数据是否一致
使用场景
1.密码验证
123321 jahsajshajhsjahjas client 加密后结果 server 拿到加密后 2.验证数据是否被篡改 比如游戏安装包 有没有被改过 为了防止别人撞库成功 可用提升密码的复杂度 其次可以为密码加盐 (加点内容进去)
"""
import hashlib
# a=hashlib.md5('zhang'.encode('utf-8'))
# print(a.hexdigest()) # 得到加密后的密文d0cd2693b3506677e4c55e91d6365bff # 模拟撞库原理 :事先把常见的明文和密文的对应195d91be1e3ba6f1c857d46f24c5a454关系存入数据库中 看运气尝试
psw = {'zhang':'d0cd2693b3506677e4c55e91d6365bff'}
# aa= hashlib.sha3_512('zhang'.encode('utf-8')) # [.sha]后面有多种算法,例如sha3_512算法是128位的
# print(aa.hexdigest()) #3afb94d7275438967af70221163c7ae4a0bc1abc4872d5aa42b2bd46611d87b7cbdb877f6fcc2024be5c57e3853ca3b56243bef4fbbcb126813b8106de7623dd # 加盐:为了防止别人撞库 可以提升密码的复杂度 (常用操作)
res = hashlib.md5('zhang'.encode('utf-8'))
res.update('123'.encode('utf-8'))
print(res.hexdigest())
"""
re模块
主要正则表达式相关
什么是正则表达式 一堆带有特殊意义的符号组成式子
它的作用 处理(匹配 查找 替换 )字符串
1.
在爬虫中大量使用 其实有框架帮你封装了这些复杂的正则
2.
在网站和手机app的注册功能中大量使用 例如判断你的邮箱地址是否正确 """ import re
# ===============================单个字符匹配=========
print(re.findall("\n","1\n")) # 匹配换行符
print(re.findall("\t","1asasas121 \t")) # 匹配制表符 # ========================范围匹配===========
print(re.findall("\w","1aA_*")) # 匹配数字字母下划线
print(re.findall("\W","1aA_*,")) # 匹配非数字字母下划线
print(re.findall("\s"," \n\r\t\f")) # 匹配任意空白字符
print(re.findall("\S"," \n\r\t\f")) # 匹配任意非空白字符
print(re.findall("\d","123abc1*")) # 匹配任意非空白字符
print(re.findall("\D","123abc1*")) # 匹配任意非空白字符
# print(re.findall("[abc]","AaBbCc")) # 匹配 a b c都行
# print(re.findall("[^abc]","AaBbCc")) # 除了 a b c都行
# print(re.findall("[0-9]","AaBbCc12349")) # 除了 a b c都行
print(re.findall("[a-z]","AaBbCc12349")) # a-z 英文字母
print(re.findall("[A-z]","AaBbC:cPython10/17-re模块/hashlib模块/logging模块的更多相关文章
- python3之xml&ConfigParser&hashlib&Subprocess&logging模块
1.xml模块 XML 指可扩展标记语言(eXtensible Markup Language),标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言. XML 被设计用来传输和存储 ...
- 常用模块(hashlib,configparser,logging)
常用模块(hashlib,configparser,logging) hashlib hashlib 摘要算法的模块md5 sha1 sha256 sha512摘要的过程 不可逆能做的事:文件的一致性 ...
- s14 第5天 时间模块 随机模块 String模块 shutil模块(文件操作) 文件压缩(zipfile和tarfile)shelve模块 XML模块 ConfigParser配置文件操作模块 hashlib散列模块 Subprocess模块(调用shell) logging模块 正则表达式模块 r字符串和转译
时间模块 time datatime time.clock(2.7) time.process_time(3.3) 测量处理器运算时间,不包括sleep时间 time.altzone 返回与UTC时间 ...
- hashlib,configparser,logging模块
一.常用模块二 hashlib模块 hashlib提供了常见的摘要算法,如md5和sha1等等. 那么什么是摘要算法呢?摘要算法又称为哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度 ...
- hashlib,configparser,logging,模块
一,hashlib模块 算法介绍 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一 ...
- hashlib、logging模块
hashlib模块 hashlib提供了常见的摘要算法,如md5和sha1等等. 那么什么是摘要算法呢?摘要算法又称为哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通 ...
- 内置函数 hashlib configparser logging 模块 C/S B/S架构
1.内置函数 # 内置的方法有很多 # 不一定全都在object中 # class Classes: # def __init__(self,name): # self.name = name # s ...
- 常用模块之hashlib,configparser,logging模块
常用模块二 hashlib模块 hashlib提供了常见的摘要算法,如md5和sha1等等. 那么什么是摘要算法呢?摘要算法又称为哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定 ...
- 模块hashlib和logging
Python的hashlib提供了常见的摘要算法MD5. 我们以常见的摘要算法MD5为例,计算出一个字符串的MD5值: import hashlib md5=hashlib.md5() md5.upd ...
- python_模块 hashlib ,configparser, logging
hashlib模块 算法介绍 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长 ...
随机推荐
- unity3d英语单词拼写小游戏Pics Quiz Maker With Categories 3.0
下载地址: https://item.taobao.com/item.htm?spm=0.7095261.0.0.19f71debcef4hT&id=575991216080
- Lua面试题目
1.Lua的特性 轻量级: 它用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程序里. 可扩展: Lua提供了非常易于使用的扩展接口和机制:由宿主语言(通常是C或C++)提 ...
- http://www.bugku.com:Bugku——jsfuckWEB5(http://120.24.86.145:8002/web5/index.php)
今天又做了bugku上面的一道题.使用到了jsfuck,它是什么捏? 它是Javascript原子化的一种简易表达方式,用[]()!+就可以表示所有的Javascript字符,不依赖于浏览器. ...
- 创建React组件
组件概述 组件可以将UI切分成一些独立的.可复用的部件,这样你就只需专注于构建每一个单独的部件. 组件从概念上看就像是函数,它可以接收任意的输入值(称之为“props”),并返回一个需要在页面上展示的 ...
- c#调用dll接口传递utf-8字串方法
1. 起源: VCU10之视频下载模块,采用纯python编码实现,c++代码调用pythonrun.h配置python运行环境启动python模块,编译为dll给c#调用,以使界面UI能够使用其中功 ...
- JAVA读取XML文件并解析获取元素、属性值、子元素信息
JAVA读取XML文件并解析获取元素.属性值.子元素信息 关键字 XML读取 InputStream DocumentBuilderFactory Element Node 前言 最 ...
- GridView中CheckBox单击事件(oncheckedchanged)
在GridView中加入 CheckBox控件,想通过单击选中出现如下图所示效果: 具体做法是: 前台GV部份省掉.只加关键的CheckBox部份. view plaincopy to clipboa ...
- SY-SUBRC
一般是对read table和select语句使用. loop at g_it_data where level < <wa_data>-level and seq < < ...
- Java_9 面向对象
1.面向对象思想 面向过程的思想:自己做什么 面向对象的思想:自己找谁做,即不断地创造对象.使用对象.指挥对象做事情.万物皆对象. 面对对象的特征:封装.继承.多态. 2.java中基本单元类 成员变 ...
- python 面向对象编程 之 反射
1 什么是反射 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(自省).这一概念的提出很快引发了计算机科学领域关于应用反射性的研究.它首先被 ...