知识总结

1.回顾知识点

1.正则相关的函数

r = re.match('正则表达式',源字符串) # 返回正则对象,如果匹配失败,返回None

r.group () # 返回是符合正则的源字符串

r.groups () # 返回符合正则源字符串中的 分组信息 ' () ' ,以tuple元组格式返回

r.groupdict () # 返回符合正则 (带有分组且有分组名: (?P<分组名>正则 ) ) 的源字符中分组字典信息。

I = re.split( '正则', '源字符串' ) # 返回 以正则表示的字符分源字符串之后的列表

s = re.sub ( '正则 ',新字符, 源字符串 ) # 返回 将源字符串中符合正则的字符替换成新字符之后的字符串

s = re.subn ('正则' ,新字符, 源字符串) # 同sub(),返回元组(替换后的字符,替换次数)

sl = re.findall ('正则','源字符串') # 查找源字符串中符合正则的字符,并返回list, 如果正则中包含分组(),分组的信息以元组tuple方式显示在列表

常用的正则元字符:

[a-zA-Z] : 表示一位任意一位的字母和下划线,表示位数可以使用:

*:(0到多个)

?:(0或者1位)

+:(至少一个)

{n,}: (至少n个)

{n,m}: n到m个

. : 除了特殊符号以外,任意一个字符

[0-9] : 表示一位数字, 等同于 \d

[0-9a-zA-Z _ ] : 数字字母及下划线,及 \w

[^0- 9] : 非数字的任意字符, 等同于 \D

[0-9a-zA-Z _ ] :非数字、字母、下划线的任一字符, \W

\s : 空格、换行、换页、制表 等有空格符号

\S : 非空格的 字符

        ^ : 行首, 开始位置

        $ :行尾, 结束位置

 

  1. socket 网络通信 (基于网络)

    socket_family: AF_INET

    type: SOCK_STREAM , 主要用于TCP协议的数据传输

    1). TCP 通信

    面向连接、数据是序列化(二进制方式、字节流bytes),且是连续的,可多次发送

    服务端:

    s = socket.socket ()

    s.bind((host, port ))

    s.listen(10) # 10 表示, 允许最大连接数

    client, addr = s.accept () 等待客户端的连接, 会阻塞。

    解决方案:可以设置等待连接的超时时间在accept()方法的上方设置:s.settimeout(30),默认单位为秒

 

client.send(b 'hi')

data = client.recv ( 1024 ) # 一次从客户端读取1024字节,即1 k byte

while data:

data = client.recv(1024) # 发送数据结束时,必须发送 “ ” 带空格的字符串

服务端:

s = socket.socket ( )

s.connect ( (host, port) ) # 连接服务器

s.send ( '发送数据'.encode() )

#s.send ( b' ' )

data = s.recv (1024) # 接收数据

print (data.decode() )

 

3.多线程

1)创建线程

t1 = threading.Thread (target=函数名, args=(参数,))

2)启动线程

t1.start ()

3) 等待线程结束

t1.join () # 当前线程等待 t1 线程结束

4)线程锁 (Lock) :

来保护多个线程对同一资源(变量,对象, 可迭代的对象/数据( iterable ) ) 操作时的安全性, 即在一个资源在加锁后,只能有一个线程来占用,其他线程则等待锁的释放。

1)创建锁: lock = threading.Lock ()

2)加锁:lock.acquire ()

n += 20

3)解锁: lock.release()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值