模块
time 模块
提供三种不同类型的时间戳
time.time()时间戳形式
格式化时间
time.strftime(%Y-%m-%d %X)
结构化时间
time.localtime()
结构化时间 -----> 格式化时间
struct_time = time.localtime(3600* 24 * 365)
time.strftime('%Y - %m - %d %X',struct_time)
格式化时间 ------> 结构化时间
format_time = time.strftime('%Y- %m - % d %X')
time.strptime(format_time,'%Y- %m -% d %X')
结构化时间 --- 》 时间戳
struct_time = time.localtime(3600 * 24 * 365)
time.mktime(struct_time)
时间戳 ---- 》 结构化时间
time_stamp ----> 结构化时间
time.localtime(time_stamp)
time.time
time.sleep()
datatime
now = datetime.datetime.now()
时间的加减
now + datetime.timedelta(3)
加三小时
now + datatime.timedelta(hours=3)
random
random.random()
random.randint()
打乱
lt = [1,2,3]
random.shuffle(lt)
随机选择一个
random.chioce(lt)
random.seed(11111)
random.random()
hashlib
对字符加密
m = hashlib.md5()
m.update(b'say')
m.hexdigest()
叠加性
m.update(b'say')
m.update(b'hello')
等效于如下
m.update(b'say hello')
hmac模块
对字符加密 ,并且加上密钥,加盐
m = hmac.new(b'密钥')
m.update(b'say')
m.hexdigest()
typing()
与函数一起联用,控制函数参数的数据类型,提供了基础数据类型之外的数据类型
from typing import Iterable,Iterator,Generator
resquests()
response = requests.get()
.*?表示所有类型的都要
re 模块
去字符串找 符合某种特点的字符串
元字符
^ :以....开头
$ : 以....结尾
. : 任意字符
d : 数字
w :数字字母下划线
s : 空格/ /
D : 非数字
W : 非数字字母下划线
S : 非空格 / /
+ : 前面的字符至少1个
? : 前面的字符0 - 1 个
* : 前面的字符至少0个
[] : 中括号内的都可以
[^] :中括号内的都不可以
| : 或
{2} :前面的字符有两个
{1,2}前面的字符有1到2个
贪婪模式
. (任意字符) * (0-无穷个)
.*
非贪婪模式
.(任意字符) * (0 - 无穷个) ?(让他进入非贪婪模式)
.*?
bug
直接使用.*?匹配会匹配到空字符串
函数
re.compile
先写匹配规则然后赋值后进行使用
match
从头开始找一个,找得到就不找了,找不到报错
search
从字符串找一个,就不找了
分割字符
split('d+',字符)
sub
sub(re.sub('d+',' ',s))
subn() ------>替换多少次
re.S 会让点匹配换行符
分组
只要括号里的,a(.)c(d)----->元组返回括号中的匹配
有名分组
re.search ('(?P<name1>)(?P<name2>)',s).groupdict()
超高级用法
re.sub('c(?P<name1d+>)a','g<name1>',s)###g<name1>为不要动的内容