• 9.28 包/time/datetime/random/hashlib/hmac/typing/requests/re模块


    包是拿来导入的,也属于模块.
    包含有__init__.py的文件;导包就是导入__init__.py文件
    包一定是被当做模块文件导入,模块的搜索路径以执行文件路径为准.

    包的作用

    当模块内部函数过多,为了方便管理模块,把一个模块划分成多个模块,但是又不能改变导入方式,就把模块放入一个包内.

    time模块

    提供了三种不同类型的时间,三种不同类型时间可以转换

    time.time()

    时间戳

    time.sleep(1)

    睡眠1秒

    datetime模块

    可以进行时间的加减

    now = datetimr.datetime.now() ##计算机当前时间
    print(now + datetime.timedelta(3)) ##默认加三天
    print(now + datetime.timedelta(weeks=3)) ##加三周
    print(now + datetime.timedelta(hours=3)) ##加三小时
    print(now - datetime.timedelta(hours=3)) ##减三小时
    print(now + datetime.timedelta(hours=-3)) ##减三小时
    print(now.replace(year=1949,month=10,day=1,hour=10,minute=1,second=0,microsecond=0)) ##1949-10-01 10:01:00 00(年月日  时分秒  毫秒)
    

    random模块

    产生随机数

    掌握

    print(random.random()) ##默认0-1的随机数不包括0和1
    print(random.random(1,3)) ##随机生成1-3的整数
    lt = [1,2,3]
    random.shuffle(lt)
    print(lt) ##对lt进行乱序
    print(random.choice(lt)) ##lt中随机选一个数
    

    了解

    print(random.sample([1,'a','b',2,3],n)) ##随机选列表中的n个数据

    hashlib模块和hmac模块

    hashlib是对字符加密
    hmac是对字符加密,并加上密钥

    typing模块

    与函数连用,控制函数的参数的数据类型,提供了基础数据类型外的数据类型

    requests模块

    模拟浏览器对url发送请求,拿到数据
    url:是一个特定的网址,永不重复

    re模块

    去字符串,找符合某种特点的字符串

    元字符

    ^

    以..开头

    s = 'abcdab'
    res = re.findall('^ab',s)
    print(res) ##['ab']找到第一个就不找了
    res = re.findall('^bc',s)
    print(res) ##[]开头对不上就返回空
    

    $

    以..结尾

    s = 'abcdaba'
    res = re.findall('ba$',s)
    print(res) ##['ba']符合就返回,不符合就返回空
    

    d

    数字

    s = 'abc123abc123'
    res = re.findall('d',s)
    print(res) ##['1','2','3','1','2','3']只返回数字
    

    w

    返回非空,数字,字母,下划线等

    s = 'abc 233 dgv 11'
    res = re.findall('w',s)
    print(res) ##['a','b',...,'1']除了空格,空等都以单个字符返回
    

    s

    返回空格, ,

    s = """abc 233
    dgv 11"""
    res = re.findall('s',s)
    print(res) ##[' ','
    ',' ']返回空格,	,
    
    

    D

    非数字

    s = 'abc123abc1_3'
    res = re.findall('D',s)
    print(res) ##['a','b',...,'_']返回除数字的字符
    

    +

    前面的一个字符至少一个

    s = 'abcddd abcd abc'
    res = re.findall('abcd+',s)
    print(res) ##['abcddd','abcd']
    

    ?

    前面的字符0-1个

    s = 'abcddd abcd abc'
    res = re.findall('abcd?',s)
    print(res) ##['abcd','abcd','abc']
    

    *

    前面的一个字符至少0个

    s = 'abcddd abcd abc bc'
    res = re.findall('abcd*',s)
    print(res) ##['abcddd','abcd','abc']
    

    .

    任意字符

    s = 'abc12bca'
    res = re.findall('abc.',s)
    print(res) ##['abc1']符合.就返回所占位的字符,无或不符合就返回空
    

    .* 贪婪模式

    .(任意字符)*(0-无穷个)

    s = 'abcdefgbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbgggg'
    res = re.findall('a.*g',s)
    print(res) ##['abcdefgbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbgggg']
    

    .*?非贪婪模式

    .(任意字符)*(0-无穷个)?(让其进入非贪婪模式)

    s = 'abcdefgbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbgggg'
    res = re.findall('a.*?g',s)
    print(res) ##['abcdefg']
    

    re.S(*****)

    会让.匹配换行符

    match

    从头开始找,找到就不找了,找不到就报错

    s = 'ab abcddd abc'
    res = re.search('abcd*', s)
    print(res.group()) ##报错 
    

    整个字符中找,找到就不找了,找不到就报错

    s = 'ab abcddd abc'
    res = re.search('abcd*', s)
    print(res.group()) ##abcddd 
    

    分组

    只要括号里的

    s = 'abc abcd abcdd'
    res = re.findall('a(.)c(d)',s)
    print(res) ##[('b','d'),('b','d')]
    

    有名分组

    只要括号里的,以字典形式

    s = 'abc abcd abcdd'
    res = re.search('a(?P<name>.)c(?P<name2>d)', s)
    print(res.group()) ##{'name':'b','name2':'d'}
    
  • 相关阅读:
    文件隐藏在一张图片里
    晶振
    主宰全球的10大算法
    java+mysql连接的优化
    排序剔除
    js数据类型
    字符实体
    表单
    定义样式表
    布局相关的属性
  • 原文地址:https://www.cnblogs.com/793564949liu/p/11604599.html
Copyright © 2020-2023  润新知