Python web开发中常用的标准库简介
开发过程中,深有体会的一点就是,学习一门编程语言,除了要精通它的语法以外,更需要我们去学习该门语言的标准库。标准库是多年以来,大量开发人员留给我们的宝贵财富,它涵盖了编程中的方方面面。从发送Email到GUI开发,再到内置的Http服务器,一应俱全。
Python标准库从Python诞生到现在,已经拥有接近200个模块(包),可以完成我们需要的所有工作。可能有些人会说,这么多模块,怎么学的过来呢。是的,标准库的内容是很多,但是,我们可以选择我们所在的领域中的一些常用标准库,经过系统的学习,我们也能在该领域更好地工作。今天就来说一说在web开发中,我们最常用的标准库。
一、 文本
1. string
常用的a-z、0-9、不可打印字符等等这些都在string模块里定义好了,开发中可以直接导入使用。
2. re
正则表达式的作用就不言而喻了吧,我们所需要的正则就在re模块中。
二、 数据结构
1. collections
Python内置的数据结构有时可能并不能满足我们日常的开发,这时可以在collections模块中去寻找,如Counter、deque、OrderedDict等等,这些有用的数据结构我们可以直接使用,而不必我们再去重复造轮子了。
2. copy
Python中的想要实现深拷贝,就只有使用copy中的deepcopy了。
3. struct
在网络中二进制的打包与解包就用它了。
三、 算法
1. functools
functools封装了编写函数是常用的一些功能,如装饰器中的wraps,偏函数partial等等。
2. itertools
迭代器相关的函数,如chain、count、repeat、cycle等。
四、 日期和时间
开发中常会处理一些日期和时间相关的逻辑,一下便是常用的一些模块。
1. time
时钟时间相关的函数
2. datetime
日期相关的函数
3. calendar
日期相关的函数
五、 数学计算
1. decimal
定点数和浮点数的运算
2. fractions
有理数
3. random
随机数相关
4. math
数学函数
六、 文件系统
1. os
操作系统相关的一些操作
2. tempfile
临时文件
3. StringIO
类似于文件api的文本缓冲区
七、 数据压缩与归档
1. zlib
GNU zlib压缩
2. gzip
GNU zip文件
3. tarfile
tar归档文件
4. zipfile
zip文档文件
八、 密码
hashlib用户密码的散列
九、 进程与线程
1. subprocess
创建附加进程
2. signal
异步信号事件
3. threading
线程管理
4. multiprocessing
进程管理
十、 网络通信
1. socket
socket套接字网络通信相关
十一、Internet
1. urlparse
解析url
2. urllib系列
对网络资源的访问
3. base64
用Ascii编码二进制数据,网络中常用
4. cookie
HTTP cookie相关
5. json
使用json数据时常用的模块
十二、 Email
smtplib用来发送邮件
十三、本地化与国际化
1. gettext
消息编目
2. locale
本地化API
十四、 开发工具
1. traceback
异常和栈信息
2. pdb
调试工具
十五、 运行时特性
1. site
全站点配置
2. sys
系统特定的配置
3. platform
系统版本信息
十六、 语言工具
1. warnings
非致命警告
2. abc
抽象基类
3. dis
字节码反汇编工具
4. inspect
检查现场对象
5. exceptions
内置的异常类