re模块
正则表达式
用一些特殊符号拼凑成的规则,去字符串中匹配到符合规则的东西

为什么有正则表达式
从字符串中取出想要的数据

怎么用正则表达式
re.findall()结果存成列表
\w 匹配一个字符,字符,数字,下划线
\W 匹配一个字符,非字符,数字,下划线
\s 匹配一个字符,空白字符
\S 匹配一个字符,非空白字符
\d 匹配一个字符,数字
\D 匹配一个字符,非数字
^从头开始匹配
$从尾开始匹配

重复匹配
点(.),匹配一个字符,可以是任意非\n字符, re.DOTALL(flags)
[],匹配一个字符,当需要匹配"-"时
方法1,-放到最左或最右
方法2,-前加\转义
[^]^放在[]内,表示取反

? 代表左边那一个字符出现0次到1次
* 代表左边出现0次到无穷次
+ 代表左边字符出现1次到无穷次
{m,n} 代表左边出现m次,不超过n次

.贪婪匹配(尽可能多的匹配字符)
.
?非贪婪匹配(尽可能少的匹配字符)

|或者,两选1
() 分组,默认情况下只留下匹配成功组内的东西
(?:)匹配成功全部都拿到

print(re.findall("alex","my name is alex,aLex is dsb ALex",re.I))
re.I忽略大小写

msg = """
my name is egon
adadfafdadfa egon
fdafadfdafegon
"""

print(re.findall("egon$",msg,re.M))
以\n为分隔符,分成三行,各自匹配

pattern = re.compile("alex")
pattern.findall(msg)

hashlib
hash是一种算法,高效解决某一类问题的方法
1.接收一系列数据,经过运算,得到一个返回值,该返回值叫hash值
hash值特点
1.只要传入内容一样得到的hash值一样
2.只要采用hsah算法固定,无论传入的内容多大,hash值的长度是固定的
3.hash值不可逆,不可通过hash值逆推出内容

为何要用hash
用途:1.文件完整性校验(特性1和2)
2.加密
m = hashlib.md5()
m.update()接收的数据必须是bytes类型
m.update("你好".encode("utf8"))
m.update("hello".encode("utf8"))
m.update(b"hello")
print(m.hexdigest())

文件截取内容:
with open("a.txt","rb")as f:
for line in f:
m.update(line)
res = m.hexdigest()
文件过大需要全部读取出来加密,影响我们的下载速度,故截取部分类容加密

密码加盐:
m = hashlib.md5()
pwd = input("input your pwd:").strip()
m.update("天王盖地虎")
m.update(pwd)
m.update("宝塔镇河妖")
res = m.hexdigest()

Day17re模块和hashlib模块的更多相关文章

  1. hmac模块和hashlib模块

    hmac模块和hashlib模块 一.hash是什么 ​ hash是一种算法(Python3.版本里使用hashlib模块代替了md5模块和sha模块,主要提供 SHA1.SHA224.SHA256. ...

  2. 包、logging模块、hashlib模块、openpyxl模块、深浅拷贝

    包.logging模块.hashlib模块.openpyxl模块.深浅拷贝 一.包 1.模块与包 模块的三种来源: 1.内置的 2.第三方的 3.自定义的 模块的四种表现形式: 1.py文件 2.共享 ...

  3. [xml模块、hashlib模块、subprocess模块、os与sys模块、configparser模块]

    [xml模块.hashlib模块.subprocess模块.os与sys模块.configparser模块] xml模块 XML:全称 可扩展标记语言,为了能够在不同的平台间继续数据的交换,使交换的数 ...

  4. Python模块之hashlib模块、logging模块

    一.hashlib模块 hashlib模块介绍:hashlib这个模块提供了摘要算法,例如 MD5.hsa1 摘要算法又称为哈希算法,它是通过一个函数,把任意长度的数据转换为一个长度固定的数据串,这个 ...

  5. 19 python初学(os 模块,sys 模块,hashlib 模块)

    os 模块: # _author: lily # _date: 2019/1/13 import os print(os.getcwd()) # 得到当前的工作目录 # print(os.chdir( ...

  6. re模块、hashlib模块

    一.re模块 1.什么是正则? 正则就是用一系列具有特殊含义的字符组成一套规则,该规则用来描述具有某一特征的字符串,正则就是用来去一个大的字符串中匹配出符合规则的子字符串 2.为何要用正则? 用户注册 ...

  7. day5模块学习--hashlib模块

    hashlib模块     Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度 ...

  8. 模块讲解----hashlib模块(加密)

    作用 用于加密相关的操作,代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 语法 import hashlib #md5 ...

  9. 模块—— 序列化模块、random模块、os模块 、 sys模块、hashlib模块、collections模块

    今天我们来说说Python中的模块: 第三方模块 可以下载/安装/使用 第一步:将pip.exe 所在的目录添加到环境变量中第二步:输入pip第三步:pip install 要安装的模块名称  #pi ...

  10. python 无序模块,hashlib模块

    无序模块什么是无序模块,将字符串转化为十六进制的字符串类型,主要运用在网络编程中.1,json模块 1,用于网络传输,跨语言,可用的类型有 int str 列表-->元祖会变为列表 字典--&g ...

随机推荐

  1. C# 委托之把委托从委托链(多播委托)移除

    运用“-”运算符将委托从委托链移除 class HelloWorld { //定义委托类型 delegate void DelegationChain(); static void Main(stri ...

  2. Dwarves, Hats and Extrasensory Abilities Codeforces - 1063C

    https://codeforces.com/contest/1063/problem/C 首先可以想到一个简单做法:先钦定这个直线的斜率k=-1,然后设直线y=-x+b 设黑点放直线上方:如果已知( ...

  3. python+selenium 页面中存在选项卡时,获取页面内容的小技巧

    最近用selenium读取页面内容时,遇到包含选项卡的页面,由于选项卡多由js加载其中的内容,所以在网址打开时只能获取到默认显示的选项卡中的内容,而tab2.tab3等等都需要傻傻的点击一下才会获取到 ...

  4. 541 Reverse String II 反转字符串 II

    给定一个字符串和一个整数 k,你需要对从字符串开头算起的每个 2k 个字符的前k个字符进行反转.如果剩余少于 k 个字符,则将剩余的所有全部反转.如果有小于 2k 但大于或等于 k 个字符,则反转前 ...

  5. 09通过winfrom实现简单的播放音、视频

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  6. [转]如何降低SQL Server 内存使用率

    我的数据库服务器内存为8G,现在资源管理器显示内存用到5G,可以肯定是sql server数据库吃内存原因. MSSQL占用了太多的内存,而且还不断的增长:或者说已经设置了使用内存,可是它没有用到那么 ...

  7. 倒计时器 CountDownTimer

    使用介绍 开发中经常会遇到一些和倒计时有关的场景,比如发送验证码的按钮,会在点击发送后,显示倒计时间,倒计时结束后才能够刷新按钮,再次允许点击.为了不阻塞软件的运行,又要实时刷新界面,我们通常会用到 ...

  8. SP2-0734: 未知的命令开头 "imp scott/..." - 忽略了剩余的行。

    Oracle数据导入报错:SP2-0734: 未知的命令开头 "imp scott/..." - 忽略了剩余的行. 原因:进入sqlplus里是不能执行imp的(sqlplus不认 ...

  9. C# for循环的嵌套 作用域

    for() {   循环体可以套无数个for循环 } 比如:for() { for() { for() {... ...这里面可以镶嵌无数个for循环} } } 也可以这样 for() { for() ...

  10. WebStorm 配置less

    1.打开Webstorm的Setting 搜索,watch 找到 File watch,点击右侧加号添加Less. 2.配置, working directory. Output paths