Python学习笔记六

时间:2023-10-05 16:39:08

Python课堂笔记六

常用模块已经可以在单位实际项目中使用,可以实现运维自动化。无需手工备份文件,数据库,拷贝,压缩。

常用模块

time模块

time.time

time.localtime

time.strftime

os模块:主要针对操作系统的一些方法,如:切换目录

sys模块:跟python解释器交互使用。

shutil模块:针对目录或文件的复制,拷贝,重命名的操作等。

hashlib模块:摘要算法模块.

1.文件的一致性校验

      2.用户的加密认证

3.不可逆性,撞库,加盐

json/pickle/shelve模块:

json:通用的序列化格式,支持的数据类型有限

pickle:只能python程序使用

configparse

random模块

验证码

logging模块

  模块级别:

    critical=50

    error=40

    warning=30

    info=20

    debug=10

    notset=0

    默认日志级别:warning,

    默认的输出目标是:终端

    全局配置日志
    import logging
    logging.basicConfig(
  filename='yangjianbo.log',
  format='%(asctime)s - %(name)s - %(levelname)s -%(module)s:%(message)s',
  datefmt='%Y-%m-%d %H-%M-%S',
  level=10,
    )     logging.debug('杨建波111111')

    

  logging的四个对象

    logger    fiter   formatter   hanlder

   logging的正式使用:

logging.config

re模块

  Python学习笔记六

  re.findall()

    

#coding=utf-8
import re #第一个参数:正则规则;
#第二个参数:要查询的字符串。
# print(re.findall('yang','I am yangjianbo,ya2chenamu,ddf***iujf _-yang22'))
# print(re.findall('aaa','bbbs2 222aaa dcccddddddaaaaaaa'))
# print(re.findall('[a-z]','I am yangjianbo,ya2chenamu,ddf***iujf _-yang22')) #匹配所有小写字母
# print(re.findall('\w','I am yangjianbo,ya2chenamu,ddf***iujf _-yang22')) #字母数字下划线
# print(re.findall('\W','I am yangjianbo,ya2chenamu,ddf***iujf _-yang22')) #非字母数字下线
# print(re.findall('\s','I am yangjianbo,ya2ch\ten\ra\nmu,ddf***iujf _-yang22')) #空字符,包括\t \r \n
# print(re.findall('\S','I am yangjianbo,ya2chenamu,ddf***iujf _-yang22'))#非空字符
# print(re.findall('\d','I am yangjianbo,ya2chenamu,ddf***iujf _-yang22')) #数字
# print(re.findall('\D','I a\tm yangjianbo,ya2chenamu,ddf***iujf _-yang22')) #非数字 #重复匹配
# print(re.findall('ab?','I am yangjianbo,ya2chenamu,ddf***iujf _-yang22'))#重复前一个字符0次或1次
# print(re.findall('ab*','I am yangjianbo, abbbb ya2chenamu,ddf***iujf _-yang22')) #重复前一个字符0次或无穷次
# print(re.findall('ab+','I am yangjianbo,ya2chenabbbbamu,ddf***iujf _-yang22'))#重复前一个字符1次或无穷次
# print(re.findall('ab{4}','I am yangjabbbbianbo,abbya2chenamu,ddf***iujf _-yang22'))#重复前一个字符4次。
# print(re.findall('ab{4,5}','I am yangjabbbbianbo,abbya2abbbbbchenamu,ddf***iujf _-yang22'))#重复前一个字符4次到5次
# print(re.findall('a.b','I am yangjabbbbianbo,abbya2chenamu,ddf***iujf _-yang22'))# 点表示任意一个字符
#.* 表示匹配所有字符。默认是贪婪匹配。
# print(re.findall('a.*b','I am yangjabbbbianbo,abbya2chenamu,ddf***iujf _-yang22 a1283838b'))#匹配出a和b之前所有的字符,而且是最长的。
# print(re.findall('a.*?b','I am yangjabbbbianbo,abbya2chenamu,ddf***iujf _-yang22 a1283838b'))#匹配符合a和b之间最短的字符.

   re.search()  匹配第一个字符,匹配成功就返回结果,不会继续匹配。

     re.match() :匹配以指定字符串为首的字符串,匹配成功就返回结果,与re.search('^')相似。

   re.split(): 以指定的分隔符,分割字符串。

re.sub():  用来替换指定的字符串。