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等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长 ...
随机推荐
- TabError的解决方法
问题:Python文件运行时报TabError: inconsistent use of tabs and spaces in indentation 原因:说明Python文件中混有Tab和Spac ...
- Linux sudo用法与配置
Linux环境:CentOS 6.7 结构说明 可以通过编辑文件/etc/sudoers来配置,通常使用visudo命令来进行修改,因为如果你修改的格式不符合它会进行提示.接下来就通过一个格式来了解它 ...
- Codeforces Beta Round #44 (Div. 2)
Codeforces Beta Round #44 (Div. 2) http://codeforces.com/contest/47 A #include<bits/stdc++.h> ...
- selenimu学习二
1.上传文件 from selenium import webdriver import time import os driver = webdriver.Chrome() src_file = & ...
- swift - layer - 渐变色 - CAGradientLayer
1.创建 渐变色 /// 渐变色:默认从上到下 private var gradientLayer: CAGradientLayer = { let g = CAGradientLayer() g.c ...
- SAP请求号的传输
SAP传输目的: SAP传输目的是把开发机中的程序或对象传输到对应的测试机或生成机中,保持各系统的同步性,方便测试和最后的部署! SAP求情号传输的步骤: 1.创建一个请求号 2.用SE10进入如下界 ...
- CMakeLists.txt的写法
[1]ADD_LIBRARY: Add a library to the project using the specified source files.要求CMake根据指定的源文件生成库文件 . ...
- BCH/BCHABC/BCHSV分叉后重放机制小结
1. 不过,在谈重放保护之前,我们需要先了解一下重放攻击(又称重播攻击.回放攻击).实际上,重放攻击在互联网行业里就有过出现,也是计算机世界黑客最常用的攻击方式之一,它是指攻击者发送一个目的主机已接收 ...
- MVc Identity登陆锁定
2016-08-03 [ASP.NET Identity] OAuth Server 鎖定(Lockout)登入失敗次數太多的帳號 743 6 ASP.NET Identity 檢舉文章 2016-0 ...
- jquery关于attr和prop的差异
转自:http://www.jb51.net/article/88068.htm 处理像checkbox,radio和select这样的元素时,经常会发现明明使用了attr设置了selected或ch ...