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模块
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(): 用来替换指定的字符串。