-
序列化:变量从内存中变成可储存或传输的进程
pickle.dump(s)(x)
序列化成一个bytes
(序列化后写入一个file-like Object)
pickle.load(s)
json.dump(s)(x)
和json.load(s)(x)
是序列化为json或json反序列化- 具体用法请参考(python序列化)
-
多进程:
multiprocessing
提供一个Process
类代表一个进程对象。创建时只需传入一个函数和参数,用start()
启动,join()
等待子进程结束后再向下进行Pool()
批量创建子进程,默认大小代表可以 同时跑的进程数Subprocess
模块可以启动一子进程然后控制其输入和输出,如果还需输入可用communicate()
- 进程间通信通过
Queue
和Pipes
等实现 - 具体用法请参考(Python多进程)
-
多线程:
threading
模块中有个current_thread()
函数,永远返回当前线程的实例threading.Lock()
:try...finally
确保锁一定会被释放GIL
锁实际上把所有县城的执行代码上锁,导致Python的多线程只能交替进行- 具体请参考Python多线程
-
ThreadLocal
对象变量虽是全局变量,但每个线程只能读写自己线程的独立副本,解决了参数在一个线程中各个函数间互相传递的问题 -
分布式进程:
Process
可分布到多台机器上,而Thread
最多分布到同一台机器的多CPU上具体请参考(Python分布式进程)
-
正则表达式:
re.math(r'正则',x)
:成功返回一个Match对象
,失败返回None
- 切分字符串:例
re.split(r'\s+', 'a b c')
=['a', 'b', 'c']
- 分组:用
()
表示要提取的分组(group) - 贪婪匹配:默认为贪婪匹配,可以加
?
变为非贪婪匹配 - 编译:先编译正则表达式,调用方法不用给出,提高效率
- 具体请参考(Pyton正则表达式)
-
电子邮件:
- MUA->MTA(协议:SMTP->SMTP)
MUA->MDA(协议:IMAP->POP) - SMTP发送邮件:
smtplib
负责发送邮件email
负责构建邮件
- POP3收取邮件
- 用
poplib
把邮件的原始文本下载到本地 - 用
email
解析原始文本,还原为邮件对象
- 用
- 具体请参考(Python电子邮件)
- MUA->MTA(协议:SMTP->SMTP)
Python知识整合(七)
最新推荐文章于 2024-03-26 16:43:10 发布