python常用标准库
python常用标准库
python常用标准库
python常用标准库
Python有一套标准库(standard library)。
安装python时,标准库随着Python解释器,一起安装在你的电脑中的,它是Python的一个组成部分。
标准库即Python自带模块,不需要单独安装。
详细参见:
一、python内置函数:

二、标准库的三个方面:Python增强,系统互动,以及网络。
第一类:Python增强
1. 文本处理服务
re— 正则表达式操作
python可以用正则表达式(regular expression)来处理字符串,正则表达式是一个字符串模板。
import re a = re.findall("\d+","321dfdf41") print(a) # 输出打印['321', '41'] b = re.findall("\d","312fddf541") print(b) # 输出打印['3', '1', '2', '5', '4', '1']注:其他实例参见 。
textwrap—文本自动换行与填充string— 常见的字符串操作difflib— 计算差异的辅助工具unicodedata— Unicode 数据库stringprep— 因特网字符串预备readline— GNU readline 接口readline模块 定义了一系列函数用来读写Python解释器中历史命令,并提供自动补全命令功能。这个模块可以通过relcompleter模块直接调用,模块中的设置会影响解释器中的交互提示,以及内置函数raw_input()和input()提供的提示。
rlcompleter— GNU readline 的补全函数
2. 数据类型
datetime— 基本的日期和时间类型datetime.date类: date对象表示理想化日历中的日期(年、月和日), 公历1年1月1日被称为第一天,依次往后推。datetime.time类:表示一个(当地)时间对象,与任何特定的日期无关,并且可以通过tzinfo(时区)对象进行调整。datetime.datetime类:datetime对象包含date对象和time对象的所有信息from datetime import datetime, time, date # 输出 datetime.today(): 2021-04-06 16:53:12.080000 datetime.now(): 2021-04-06 16:53:12.080000 datetime.utcnow(): 2021-04-06 08:53:12.080000 datetime.fromtimestamp(1491468000): 2017-04-06 16:40:00 datetime.fromordinal(699000): 1914-10-19 00:00:00 datetime.combine(date(2012,12,12), time(12,12,12)): 2012-12-12 23:59:59 datetime.strptime("2012-12-10", "%Y-%m-%d"): 2012-12-10 00:00:00其他实例参见 。
zoneinfo— IANA 时区支持calendar— 日历相关函数import calendar cal = calendar.TextCalendar(calendar.SUNDAY) print(cal.formatyear(2020, 2, 1, 1, 3))
collections— 容器数据类型Python数据结构常用模块:collections、heapq、operator、itertools
collections常用类型有:计数器(Counter),双向队列(deque),默认字典(defaultdict),有序字典(OrderedDict),可命名元组(namedtuple)实例 。
collections.abc— 容器的抽象基类heapq— 堆队列算法bisect— 数组二分查找算法array— 高效的数值数组weakref— 弱引用types— 动态类型创建和内置类型名称copy— 浅层 (shallow) 和深层 (deep) 复制操作Python中的赋值语句不复制对象,它们在目标和对象之间建立索引。对于可变项目或可变项目的集合,有时需要一个副本,以便可以更改一个副本而不更改其他副本。该模块提供通用的浅层和深层copy操作。
实例参考 。
pprint— 数据美化输出reprlib— 另一种 repr() 实现enum— 对枚举的支持graphlib— Functionality to operate with graph-like structures
4. 数字和数学模块
numbers— 数字的抽象基类math— 数学函数import math print(dir(math)) # 打印输出: ['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']cmath— 关于复数的数学函数复数在 Python 中的表达式为
C==c.real+c.imag*j。cmath 模块和 Python 中的 math 模块对应, math提供对于实数运算的支持, cmath 模块对复数运算和其他复杂运算的支持。
decimal— 十进制定点和浮点运算fractions— 分数random— 生成伪随机数random.random() #用于生成一个0到1的随机浮点数:0<= n < 1.0 random.uniform(a,b) #用于生成一个指定范围内的随机浮点数,两个参数其中一个是上限,一个是下限。如果a > b,则生成的随机数n: b <= n <= a。如果 a <b, 则 a <= n <= b。 random.randint(a, b) #用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b random.randrange([start], stop[, step]) #从指定范围内,按指定基数递增的集合中 获取一个随机数。 random.choice(sequence) #random.choice从序列中获取一个随机元素。 random.shuffle(x[, random]) #用于将一个列表中的元素打乱,即将列表内的元素随机排列。 random.sample(sequence, k) #从指定序列中随机获取指定长度的片断并随机排列。注意:sample函数不会修改原有序列。statistics— 数学统计函数
5.函数式编程模块
itertools— 为高效循环而创建迭代器的函数functools— 高阶函数和可调用对象上的操作operator— 标准运算符替代函数
6.文件和目录访问
pathlib— 面向对象的文件系统路径os.path— 常用路径操作fileinput— 迭代来自多个输入流的行stat— 解析 stat() 结果filecmp— 文件及目录的比较tempfile— 生成临时文件和目录glob— Unix 风格路径名模式扩展fnmatch— Unix 文件名模式匹配linecache— 随机读写文本行shutil— 高阶文件操作
7.数据持久化
pickle— Python 对象序列化copyreg— 注册配合 pickle 模块使用的函数shelve— Python 对象持久化marshal— 内部 Python 对象序列化dbm— Unix “数据库” 接口sqlite3— SQLite 数据库 DB-API 2.0 接口模块
8.数据压缩和存档
zlib— 与 gzip 兼容的压缩gzip— 对 gzip 格式的支持bz2— 对 bzip2 压缩算法的支持lzma— 用 LZMA 算法压缩zipfile— 使用ZIP存档tarfile— 读写tar归档文件
9.文件格式
csv— CSV 文件读写configparser— 配置文件解析器netrc— netrc 文件处理xdrlib— 编码与解码 XDR 数据plistlib— 生成与解析 Apple .plist 文件
10.加密服务
hashlib— 安全哈希与消息摘要hmac— 基于密钥的消息验证secrets— 生成安全随机数字用于管理密码
11.二进制数据服务
struct— 将字节串解读为打包的二进制数据codecs— 编解码器注册和相关基类
第二类:系统互动
1. Python运行控制
通用操作系统服务
os— 多种操作系统接口io— 处理流的核心工具argparse— 命令行选项、参数和子命令解析器
1.argparse模块可以让人轻松编写用户友好的命令行接口
2.自动生成帮助和使用手册
3.用户给程序传入无效参数时报出错误信息
如何使用argparse
首先导入这个包,argparse是python标准库,不需要安装;创建一个ArgumentParser对象,构造一个解析器parser。自定义description描述。
import argparse parser = argparse.ArgumentParser(description="求长方形求面积") parser.add_argument("a", type=int, help="长度") parser.add_argument("b", type=int, help="宽度") parser.add_argument("-i", "--info", help="我是可选参数")调用add_argument()添加参数: type表示接收的数据类型,不定义默认为str,此处需要计算面积,需要int类型; help参数为提示信息,后面会看到效果; 再添加一个可选参数 --info -i 表示参数简写- 调用parse_args(),读取命令行传入的参数,并进行解析后,存储或者执行相关的操作
args = parser.parse_args()time— 时间的访问和转换getopt— C 风格的命令行选项解析器logging— Python 的日志记录工具logging.config— 日志记录配置logging.handlers— 日志处理程序getpass— 便携式密码输入工具curses— 终端字符单元显示的处理curses.textpad— 用于 curses 程序的文本输入控件curses.ascii— 用于 ASCII 字符的工具curses.panel— curses 的面板栈扩展platform— 获取底层平台的标识数据errno— 标准 errno 系统符号ctypes— Python 的外部函数库
Python运行时服务
sys— 系统相关的参数和函数sys模块的常见函数列表 sys.argv: 实现从程序外部向程序传递参数。 sys.exit([arg]): 程序中间的退出,arg=0为正常退出。 sys.getdefaultencoding(): 获取系统当前编码,一般默认为ascii。 sys.setdefaultencoding(): 设置系统默认编码,执行dir(sys)时不会看到这个方法,在解释器中执行不通过,可以先执行reload(sys),在执行 setdefaultencoding('utf8'),此时将系统默认编码设置为utf8。(见设置系统默认编码 ) sys.getfilesystemencoding(): 获取文件系统使用编码方式,Windows下返回'mbcs',mac下返回'utf-8'. sys.path: 获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到。 sys.platform: 获取当前系统平台。 sys.stdin,sys.stdout,sys.stderr: stdin , stdout , 以及stderr 变量包含与标准I/O 流对应的流对象. 如果需要更好地控制输出,而print 不能满足你的要求, 它们就是你所需要的. 你也可以替换它们, 这时候你就可以重定向输出和输入到其它设备( device ), 或者以非标准的方式处理它们sysconfig— Provide access to Python’s configuration informationbuiltins— 内建对象__main__— 顶层脚本环境warnings— Warning controldataclasses— 数据类contextlib— 为 with语句上下文提供的工具abc— 抽象基类atexit— 退出处理器traceback— 打印或检索堆栈回溯__future__— Future 语句定义gc— 垃圾回收器接口inspect— 检查对象site—— 指定域的配置钩子
并发执行
threading— 基于线程的并行多线程模块threading,该模块支持守护线程,其工作方式:守护线程一般是一个等待客户端请求的服务器。如果没有客户端请求,守护线程就是空闲的。如果把一个线程设置为守护线程,就表示这个线程是不重要的,进程退出时不需要等待这个线程执行完成。
参看 。
multiprocessing— 基于进程的并行multiprocessing.shared_memory— 可从进程直接访问的共享内存concurrent包concurrent.futures — 启动并行任务subprocess— 子进程管理sched— 事件调度器queue— 一个同步的队列类_thread— 底层多线程 API
第三类:网络
网络和进程间通信
- asyncio — 异步 I/O
- socket — 底层网络接口
- ssl — 套接字对象的 TLS/SSL 包装器
- select — 等待 I/O 完成
- selectors — 高级 I/O 复用库
- asyncore — 异步套接字处理器
- asynchat — 异步套接字指令/响应处理程序
- signal — 设置异步事件处理程序
- mmap — 内存映射文件支持
互联网数据处理
- email — 电子邮件与 MIME 处理包
- json — JSON 编码和解码器
- mailcap — Mailcap 文件处理
- mailbox — Manipulate mailboxes in various formats
- mimetypes — Map filenames to MIME types
- base64 — Base16, Base32, Base64, Base85 数据编码
- binhex — 对binhex4文件进行编码和解码
- binascii — 二进制和 ASCII 码互转
- quopri — 编码与解码经过 MIME 转码的可打印数据
- uu — 对 uuencode 文件进行编码与解码
结构化标记处理工具
- html — 超文本标记语言支持
- html.parser — 简单的 HTML 和 XHTML 解析器
- html.entities — HTML 一般实体的定义
XML处理模块
- xml.etree.ElementTree — ElementTree XML API
- xml.dom — The Document Object Model API
- xml.dom.minidom — Minimal DOM implementation
- xml.dom.pulldom — Support for building partial DOM trees
- xml.sax — Support for SAX2 parsers
- xml.sax.handler — Base classes for SAX handlers
- xml.sax.saxutils — SAX 工具集
- xml.sax.xmlreader — Interface for XML parsers
- xml.parsers.expat — Fast XML parsing using Expat
互联网协议和支持
- webbrowser — 方便的Web浏览器控制器
cgi— Common Gateway Interface support- cgitb — 用于 CGI 脚本的回溯管理器
- wsgiref — WSGI Utilities and Reference Implementation
- urllib — URL 处理模块
- urllib.request — 用于打开 URL 的可扩展库
- urllib.response — urllib 使用的 Response 类
- urllib.parse — 用于解析 URL
- urllib.error — urllib.request 引发的异常类
- urllib.robotparser — robots.txt 语法分析程序
- http — HTTP 模块
- http.client — HTTP 协议客户端
- ftplib — FTP 协议客户端
- poplib — POP3 协议客户端
- imaplib — IMAP4 协议客户端
- nntplib — NNTP protocol client
- smtplib —SMTP协议客户端
- smtpd — SMTP 服务器
- telnetlib — Telnet client
- uuid — UUID objects according to RFC 4122
- socketserver — A framework for network servers
- http.server — HTTP 服务器
- http.cookies — HTTP状态管理
- http.cookiejar —— HTTP 客户端的 Cookie 处理
- xmlrpc — XMLRPC 服务端与客户端模块
- xmlrpc.client — XML-RPC client access
- xmlrpc.server — Basic XML-RPC servers
- ipaddress — IPv4/IPv6 操作库
python其他标准库
contextvars — 上下文变量
- 上下文变量
- 手动上下文管理
- asyncio 支持
多媒体服务
- audioop — 处理原始音频数据
- aifc — 读写 AIFF 和 AIFC 文件
- sunau — 读写 Sun AU 文件
- wave — 读写WAV格式文件
- chunk — 读取 IFF 分块数据
- colorsys — 颜色系统间的转换
- imghdr — 推测图像类型
- sndhdr — 推测声音文件的类型
- ossaudiodev — Access to OSS-compatible audio devices
国际化
- gettext — 多语种国际化服务
- locale — 国际化服务
程序框架
- turtle — 海龟绘图
- cmd — 支持面向行的命令解释器
- shlex — Simple lexical analysis
Tk图形用户界面(GUI)
- tkinter — Tcl/Tk的Python接口
- tkinter.colorchooser — 颜色选择对话框
- tkinter.font — Tkinter 字体封装
- Tkinter 对话框
- tkinter.messagebox — Tkinter 消息提示
- tkinter.scrolledtext — 滚动文字控件
- tkinter.dnd — 拖放操作支持
- tkinter.ttk — Tk主题部件
- tkinter.tix — Extension widgets for Tk
- IDLE
- 其他图形用户界面(GUI)包
开发工具
- typing — 类型提示支持
- pydoc — 文档生成器和在线帮助系统
- Python Development Mode
- Effects of the Python Development Mode
- ResourceWarning Example
- Bad file descriptor error example
- doctest — 测试交互性的Python示例
- unittest — 单元测试框架
- unittest.mock — mock对象库
- unittest.mock 上手指南
2to3 - 自动将 Python 2 代码转为 Python 3 代码
- test — Python回归测试包
- test.support — Utilities for the Python test suite
- test.support.socket_helper — Utilities for socket tests
- test.support.script_helper — Utilities for the Python execution tests
- test.support.bytecode_helper — Support tools for testing correct bytecode generation
调试和分析
- 审计事件表
- bdb — Debugger framework
- faulthandler — Dump the Python traceback
- pdb — Python 的调试器
- Python Profilers 分析器
- timeit — 测量小代码片段的执行时间
- trace — 跟踪Python语句执行
- tracemalloc — 跟踪内存分配
软件打包和分发
- distutils — 构建和安装 Python 模块
- ensurepip — Bootstrapping the pip installer
- venv — 创建虚拟环境
- zipapp — Manage executable Python zip archives
自定义 Python 解释器
- code — 解释器基类
- codeop — 编译Python代码
导入模块
- zipimport — 从 Zip 存档中导入模块
- pkgutil — 包扩展工具
- modulefinder — 查找脚本使用的模块
- runpy — Locating and executing Python modules
- importlib — import 的实现
- Using importlib.metadata
Python 语言服务
- parser — 访问 Python 解析树
- ast — 抽象语法树
- symtable — Access to the compiler’s symbol tables
- symbol — 与 Python 解析树一起使用的常量
- token — 与Python解析树一起使用的常量
- keyword — 检验Python关键字
- tokenize — 对 Python 代码使用的标记解析器
- tabnanny — 模糊缩进检测
- pyclbr — Python 模块浏览器支持
- py_compile — 编译 Python 源文件
- compileall — Byte-compile Python libraries
- dis — Python 字节码反汇编器
- pickletools — pickle 开发者工具集
杂项服务
- formatter — 通用格式化输出
Windows系统相关模块
- msilib — Read and write Microsoft Installer files
- msvcrt — 来自 MS VC++ 运行时的有用例程
- winreg — Windows 注册表访问
- winsound — Sound-playing interface for Windows
Unix 专有服务
- posix — 最常见的 POSIX 系统调用
- pwd — 用户密码数据库
- spwd — The shadow password database
- grp — 组数据库
- crypt — Function to check Unix passwords
- termios — POSIX 风格的 tty 控制
- tty — 终端控制功能
- pty — 伪终端工具
- fcntl — The fcntl and ioctl system calls
- pipes — 终端管道接口
- resource — Resource usage information
- nis — Sun 的 NIS (黄页) 接口
- Unix syslog 库例程
被取代的模块
- optparse — 解析器的命令行选项
- imp — Access the import internals
未创建文档的模块
- 平台特定模块

