学习Python的日子 Python高级(5)

Python
正则表达式
分组
两种情况:
1. dog|cat
2. ()  --->一个组   就可以结合 :  匹配对象.group(n)
作用:在匹配的基础上得到部分内容
分组的使用:也是支持嵌套   (())  外层的是1组  内层是2组
第二部分: \number   number表示的是组的编号
第三部分 (?P<名字>)   (?P=名字)
1.  组中匹配内容起了一个别名:名字
2.后面(?p=名字) 就是使用前面的名字
3. (?P<名字>)  与 (?P=名字)成对出现
贪婪模式
只要出现"*","+","?","{m,n}",Python里正则表达式默认是开启贪婪模式的,总是尝试匹配尽可能多的字符;
非贪婪
非贪婪:只要出现"*","+","?","{m,n}" ,在其后面添加一个"?",终止贪婪模式,启动非贪婪
正则模块
1. compile("正则",re.I)  re.M
2. match("正则","字符串")   从开头找
3. search("正则","字符串")   往里面找符合要求的,找到一个就结束
4. findall("正则","字符串")  返回的是一个列表,找到一个会继续向下查找
5. sub("正则","新的值","字符串")  返回的是替换后的字符串内容'
   sub("正则","新的值","字符串",count)  返回的是替换后的字符串内容 count表示指定替换几次
6. split()
s = "ab12bb1oop9hh512345hello"
obj = re.split("\d+", s)
print(obj)
爬取图片
import urllib.request
import re


url = "http://tieba.baidu.com/f?kw=%E5%A4%8D%E4%BB%87%E8%80%85%E8%81%94%E7%9B%9F&ie=utf-8&tp=0"


response = urllib.request.urlopen(url)


content = response.read().decode("utf-8")


# print(content)
# <img src="http://tb1.bdstatic.com/tb/cms/ngmis/file_1467565757444.png"/>
obj = re.findall(r'<img src="(http://.+?\.(png|jpg))"', content)
print(obj)


# s = """
# http://www.interoem.com/messageinfo.asp?id=35
# http://3995503.com/class/class09/news_show.asp?id=14
# http://lib.wzmc.edu.cn/news/onews.asp?id=769
# http://www.zy-ls.com/alfx.asp?newsid=377&id=6
# http://www.fincm.com/newslist.asp?id=415
# """
# def repl(temp):
# print(temp)
# return temp.group(1)
#
#
# obj=re.sub("(http://.+?/)(.+)",repl,s)
# print(obj)


练习
import re
s="""<div>
        <p>岗位职责:</p>
<p>完成推荐算法、数据统计、接口、后台等服务器端相关工作</p>
<p><br></p>
<p>必备要求:</p>
<p>良好的自我驱动力和职业素养,工作积极主动、结果导向</p>
<p>&nbsp;<br></p>
<p>技术要求:</p>
<p>1、一年以上 Python 开发经验,掌握面向对象分析和设计,了解设计模式</p>
<p>2、掌握HTTP协议,熟悉MVC、MVVM等概念以及相关WEB开发框架</p>
<p>3、掌握关系数据库开发设计,掌握 SQL,熟练使用 MySQL/PostgreSQL 中的一种<br></p>
<p>4、掌握NoSQL、MQ,熟练使用对应技术解决方案</p>
<p>5、熟悉 Javascript/CSS/HTML5,JQuery、React、Vue.js</p>
<p>&nbsp;<br></p>
<p>加分项:</p>
<p>大数据,数理统计,机器学习,sklearn,高性能,大并发。</p>
</div>
"""


obj=re.sub("</?\w+>|&nbsp;","",s)
print(obj)
进程
并发和并行
多任务:(进程)
os.fork()  --->window操作系统(不可用)
跨平台实现多任务  ---> 多个操作系统都可以使用
# 启动进程
p.start()
from multiprocessing import Process
join() 表示主进程给当前的进程让步,但是不会影响其他的子进程的运行
两个进程: 主进程  子进程
进程池  ---》
import os
 1.os.fork()
os.getpid(): 获取当前的进程
os.getppid(): 获取父进程
os.fork()  子进程永远返回0,而父进程返回子进程的ID,
返回值: ==0 子进程      >0 父进程

猜你喜欢

转载自blog.csdn.net/qq_42240071/article/details/80447696
今日推荐