python正则表达式和装饰器基础

f = open(str(i)+'.jpg', "wb")
使用二进制写方式打开文件,保存图片,不然图片会马赛克。
 
 
正则表达式是:使用单个字符串   来描述   匹配  一系列   符合   某个句法规则的   字符串
正则表达式通常被用来检索、替换那些匹配某个模式的文本


import re
str = "imooc python learning"
pa = re.compile(r"imooc")  #生成对象,r表示原字符串,不需要转义
print(type(pa))  #查看定义的规则类型
result_match = pa.match(str)  #匹配目标
result = result_match.group() #保存匹配结果


正则表达式中的小括号是代表分组的意思。如果过后面出现了了\1就是代表匹配的内容与第一个小括号内的东西一样

R3=re.match(r'<([\w]+>)[\w]+</\1','<Book>Python</Book>')

\1 其实就是([\w]+>)


re模块的方法:
search,findall,sub,split
#coding:utf-8
import urllib.request

req = urllib.request.urlopen('https://www.imooc.com/course/list')
buf = req.read()
buf = buf.decode('utf-8')

import re
urlInfo = re.findall(r'//img.+?\.jpg', buf)
D = {}

for url in urlInfo:
    D[url] = url  
i = 1   
for (url,v) in D.items():
    #print(url,i)   
    f = open('E:\\Eclipse-py\\imooc\\src\\regular\\images\\'+str(i)+'.jpg', 'wb+')
    req = urllib.request.urlopen('https:'+url)
    buf = req.read()
    #buf = buf.encode('utf-8')
    f.write(buf)
    f.close()
    i += 1

Python 装饰器

函数作用域LEGB原则:L>E>G>B
L:local函数内部作用域
E:enclosing函数内部与内嵌函数之间(闭包)
G:global全局作用域
B:build-in内置作用域
 
 

闭包:其实就是内部的函数调用外界的变量,外界的变量变了,内部的变量也就变了,弄得这么高深,还什么属性属性的

闭包作用:1.封装 2.代码复用


@装饰器




猜你喜欢

转载自blog.csdn.net/sinat_23880167/article/details/79647285