首页 > 其他分享 >10月30周报

10月30周报

时间:2022-10-30 19:11:06浏览次数:38  
标签:10 匹配 res 30 re 模块 logging 日志 周报

本周总结

json模块补充

针对中文会自动转码 我们在查看的时候不方便
我们要让他不自动转码 ensure_ascii = False

正则表达式

字符组

[0123456789]	匹配0到9任意一个数(全写)
[0-9]			匹配0到9任意一个数(缩写)
[a-z]			匹配26个小写英文字母
[A-Z]			匹配26个大写英文字母
[0-9a-zA-Z]		匹配数字或者小写字母或者大写字母
ps:字符串内所有的数据默认都是或的关系

特殊符号

.			匹配除换行符以外的任意字符
\w			匹配数字、字母、下划线
\W			匹配非数字、非字母、非下划线
\s			匹配任意的空白符
\S			匹配非空白符
\d			匹配数字
\D			匹配非数字
\n			匹配一个换行符
\t			匹配一个制表符
\b			匹配一个单词的结尾
^ 			匹配字符串的开头
$			匹配字符串的结尾
		两者组合使用可以非常精确的限制匹配内容
a|b			匹配a或者b(管道符的意思是或)
()			给正则表达式分组	不影响表达式的匹配功能
[]			字符组	 内部填写的内容默认都是或的关系
[^]			取反操作 匹配除了字符组里面的其他所有字符

量词

*		匹配零次或多次		默认是多次(无穷次)
+		匹配一次或多次		默认是多次(无穷次)
?		匹配零次或一次		作为量词意义不大主要用于非贪婪匹配
{n}		重复n次
{n,}	重复n次或更多次	默认是多次(无穷次)
{n,m}	重复n到m次		  默认是m次

贪婪匹配与非贪婪匹配

所有的量词都是贪婪匹配如果想要变成非贪婪匹配只需要在量词后面加问号
.*属于经典的贪婪匹配 使用它结束条件一般在左右明确指定
.*?非贪婪匹配

转义符

'''斜杠与字母的组合有时候有特殊含义'''
\n    换行符
\\n	  匹配文本\n

re模块

在python中如果想要使用正则 可以考虑re模块

import re

# findall
res = re.findall('a','abababa') # findall(正则表达式,待匹配的文本)
print(res) # ['a','a','a','a']结果符合条件的数据,组织成列表

# search
res = re.search('a','oboboba') # search(正则,待匹配文本)
print(res.group()) # a
res = re.search('a','obobob') # search(正则,待匹配文本)
print(res) # None 没有符合条件的数据返回None

# match
res = re.match('a','oabaonm') # match(正则表达式,待匹配的文本)
print(res) # None 从字符串的开头匹配 如果没有则直接返回None 类似于给正则自动加了^ 如果符合也只获取一个就结束了
res = re.match('a', 'aoabaonm') 
print(res.group())  # a  没有则无法调用group() 直接报错

# finditer
res = re.finditer('a','jhasgafadsda') # finditer(正则表达式,待匹配的文本)
print(res) # 结果是一个迭代器对象 为了节省空间
print([obj.group()for obj in res]) # ['a','a','a','a']

obj = re.compile('\d+') # 匹配数字
print(re.findall(obj,'shd123jmhf234eqwji342'))
# ['123','234','342']

re模块补充

1.分组优先
2.分组别名

第三方模块的下载与使用

第三方模块:别人写的模块 一般情况功能都特别强大
如果想使用第三方模块必须要先下载才可以使用

下载第三方模块:
    1.pip工具
    	注意每个解释器都有pip工具 如果我们的电脑有多个版本解释器那么我们在使用pip的时候一定要注意到底用的哪一个 否则极其容易出现使用的是A版本的解释器然后用B版本的pip下载模块
        为了避免pip冲突 我们在使用的时候可以添加对应的版本号
        python36	pip3.6
     下载第三方模块的句式
    	pip install 模块名
     下载第三方模块临时切换仓库
    	pip install 模块名 -i 仓库地址
     下载第三方模块指定版本(不指定默认是最新版)
    	pip install 模块名==版本号 -i 仓库地址
        
        
   2.pycharm提供的快捷方式
	settings>project>python interprter
    双击任意一个模块名称或者左下角加号按钮
    在搜索框输入你想要下载的模块即可
    并且可以在左侧勾选specify version选择版本
      # pycharm可以换源
      	左下方点击manage repositoires管理地址即可

网络爬虫模块之requests模块

requests模块能够模拟浏览器发送网络请求

import requests
朝指定网址发送请求获取页面数据
获取bytes类型网页数据(二进制)
指定编码
获取字符串的网页数据

自动化办公领域之openpyx模块

"""以后我们会接触到很多第三方模块 那么统一的学习策略其实就是看文档"""
	pip3 install openpyxl
# 将文档中的代码拷贝执行查看效果从而推导功能

"""
excel文件的版本及后缀
	2003版本之前 excel的文件后缀是xls
	2003版本之后 excel的文件后缀是xlsx、csv
在python中能够处理excel文件的模块有很多 其中最出名的有
	xlrd、xlwt分别控制excel文件的读写 能够兼容所有版本的文件
	openpyxl针对03版本之前的兼容性可能不好 但是功能更加强大

hashlib加密模块

1.什么是加密
	将明文处理成密文数据 让人无法看懂
2.为什么加密
	保证数据的安全
3.如何判断数据是否加密
	一串没有规律的字符串(数字、字母、符号)
4.密文长短有何讲究
	密文越长表示使用的加密算法(数据的处理过程)越复杂
5.常见的密文算法
	md5、base64、hmac、sha系列
6.加密算法的基本操作
	import hashlib
    # 1.选择加密算法
    md5 = hashlib.md5()
    # 2.传入明文数据
    md5.update(b'hello')
    # 3.获取加密密文
    res = md5.hexdigest()
    print(res)  # 5d41402abc4b2a76b9719d911017c592    

logging日志模块

1.如何理解日志
	简单的理解为是记录行为举止的操作(历史史官)
2.日志的级别
	五种级别
3.日志模块要求
	代码无需掌握	但是要会CV并稍作修改

import logging
# logging.debug('debug message')
# logging.info('info message')
# logging.warning('warning message')
# logging.error('error message')
# logging.critical('critical message')
file_handler = logging.FileHandler(filename='x1.log', mode='a', encoding='utf8',)
logging.basicConfig(
    format='%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s',
    datefmt='%Y-%m-%d %H:%M:%S %p',
    handlers=[file_handler,],
    level=logging.ERROR
)

logging.error('你好')

日志的组成

1.产生日志
2.过滤日志
	基本不用 因为在日志产生阶段就可以控制想要的日志内容 
3.输出日志
4.日志格式

标签:10,匹配,res,30,re,模块,logging,日志,周报
From: https://www.cnblogs.com/super-xz/p/16841941.html

相关文章

  • 2022.10代码大全阅读心得1
    第11章:变量名的力量问题:怎样给一个变量命名?长名字还是短名字?命名的最佳实践有哪些?有哪些常见的命名方法?在命名中应该要避免的东西有哪些?怎样给一个变量命名?通......
  • 2022.10代码大全阅读心得2
    第十四章组织直线型代码14.1必须有明确顺序的代码对于具有明显的顺序关系的代码,应该使用顺序结构。对于隐含的顺序关系,应该:去除不合理的依赖关系(如不应该在Calculat......
  • 10.30
    本周总结1.正则表达式2.re模块3.第三方模块4.网络爬虫模块之requestsmk模块5.自动化办公领域之openpyxl模块6.hashlib加密模块7.subprocess模块8.logging日志模块......
  • 10.24-10.28周末回顾
    目录一、购物车二、hashlib模块1.加密的含义,如何理解加密2.加密算法的基本使用3.加密补充说明4.加密操作的用处5.优秀hash算法的特性三、子进程模块subprocess模块四、logg......
  • 【2022.10.28】Vue基础学习(4)
    内容概括1.计算属性重写过滤案例2.监听属性3.组件介绍和定义4.父子通信之父传子5.父子通信之子传父6.ref属性7.动态组件keep-alive8.插槽9.vue-cli内容......
  • [2022.10.30]常用类—Date与DateFormat
    importorg.junit.Test;importjava.util.Date;/*1.用system类中的currentTimeMillis()方法2.java.util.Date类1)两个构造器的使用......
  • 10-30内容回顾
    内容总结正则表达式/re模块使用openpyxl模块与爬虫实战hashlib,subprocess,logging模块正则表达式/re模块正则表达式一般是用于匹配数据以及筛选数据正则表达式是......
  • Faker团队展示10.30
    Faker团队展示团队特点及宣言团队特点:人狠话多、人菜瘾大团队宣言:有cat了,不想和没cat的人说话了   团队成员介绍队长:20201215王馨瑶个人简......
  • 10的第三次周报
    目录json补充正则匹配字符组特殊符号量词网络爬虫第三方模块第三方模块的下载安装exceljson补充取消中文转义ensuer_ascii=False正则匹配直接匹配字符直接填写需要......
  • 10.30周日,复盘
    复盘一级标题二级标题三级标题c编程小感悟迭代的使用当一个变量名,不断出现新值替代旧值时,此时该变量就是迭代变量。写代码最忌讳的:一步到位初学者很忌讳一下把代......