python常用标准库
- python常用标准库
- 第一类:Python增强
- 1. 文本处理服务
- 2. 数据类型
- 4. 数字和数学模块
- 5.函数式编程模块
- 6.文件和目录访问
- 7.数据持久化
- 8.数据压缩和存档
- 9.文件格式
- 10.加密服务
- 11.二进制数据服务
- 第二类:系统互动
- 1. Python运行控制
- 通用操作系统服务
- Python运行时服务
- 并发执行
- 第三类:网络
- 网络和进程间通信
- 互联网数据处理
- 结构化标记处理工具
- XML处理模块
- 互联网协议和支持
- python其他标准库
- contextvars --- 上下文变量
- 多媒体服务
- 国际化
- 程序框架
- Tk图形用户界面(GUI)
- 开发工具
- 2to3 - 自动将 Python 2 代码转为 Python 3 代码
- 调试和分析
- 软件打包和分发
- 自定义 Python 解释器
- 导入模块
- Python 语言服务
- 杂项服务
- Windows系统相关模块
- Unix 专有服务
- 被取代的模块
- 未创建文档的模块
- 标准库网址:
python常用标准库
Python有一套标准库(standard library)。
安装python时,标准库随着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
— 基本的日期和时间类型类: date对象表示理想化日历中的日期(年、月和日), 公历1年1月1日被称为第一天,依次往后推。
类:表示一个(当地)时间对象,与任何特定的日期无关,并且可以通过tzinfo(时区)对象进行调整。
类: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、itertoolscollections
常用类型有:计数器(Counter
),双向队列(deque
),默认字典(defaultdict
),有序字典(OrderedDict
),可命名元组(namedtuple
)
实例参见博客。
-
— 容器的抽象基类
-
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==+*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.shuffle(x[, random]) #用于将一个列表中的元素打乱,即将列表内的元素随机排列。 random.sample(sequence, k) #从指定序列中随机获取指定长度的片断并随机排列。注意:sample函数不会修改原有序列。
-
statistics
— 数学统计函数
5.函数式编程模块
-
itertools
— 为高效循环而创建迭代器的函数 -
functools
— 高阶函数和可调用对象上的操作 -
operator
— 标准运算符替代函数
6.文件和目录访问
-
pathlib
— 面向对象的文件系统路径 -
— 常用路径操作
-
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
— 命令行选项、参数和子命令解析器
模块可以让人轻松编写用户友好的命令行接口
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
— 时间的访问和转换time模块
-
getopt
— C 风格的命令行选项解析器 -
logging
— Python 的日志记录工具 -
— 日志记录配置
-
— 日志处理程序
-
getpass
— 便携式密码输入工具 -
curses
— 终端字符单元显示的处理 -
— 用于 curses 程序的文本输入控件
-
— 用于 ASCII 字符的工具
-
— 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 information -
builtins
— 内建对象 -
__main__
— 顶层脚本环境 -
warnings
— Warning control -
dataclasses
— 数据类 -
contextlib
— 为 with语句上下文提供的工具 -
abc
— 抽象基类 -
atexit
— 退出处理器 -
traceback
— 打印或检索堆栈回溯 -
__future__
— Future 语句定义 -
gc
— 垃圾回收器接口 -
inspect
— 检查对象 -
site
—— 指定域的配置钩子
并发执行
-
threading
— 基于线程的并行
多线程模块threading,该模块支持守护线程,其工作方式:守护线程一般是一个等待客户端请求的服务器。如果没有客户端请求,守护线程就是空闲的。如果把一个线程设置为守护线程,就表示这个线程是不重要的,进程退出时不需要等待这个线程执行完成。
参看此博客。
-
multiprocessing
— 基于进程的并行 -
multiprocessing.shared_memory
— 可从进程直接访问的共享内存 -
concurrent
包 -
s — 启动并行任务
-
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 和 XHTML 解析器
- — HTML 一般实体的定义
XML处理模块
- — ElementTree XML API
- — The Document Object Model API
- — Minimal DOM implementation
- — Support for building partial DOM trees
- — Support for SAX2 parsers
- — Base classes for SAX handlers
- — SAX 工具集
- — Interface for XML parsers
- — Fast XML parsing using Expat
互联网协议和支持
-
webbrowser — 方便的Web浏览器控制器
-
cgi
— Common Gateway Interface support -
cgitb — 用于 CGI 脚本的回溯管理器
-
wsgiref — WSGI Utilities and Reference Implementation
-
urllib — URL 处理模块
-
— 用于打开 URL 的可扩展库
-
— urllib 使用的 Response 类
-
— 用于解析 URL
-
— 引发的异常类
-
— 语法分析程序
-
http — HTTP 模块
-
— 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 服务器
-
— HTTP状态管理
-
—— HTTP 客户端的 Cookie 处理
-
xmlrpc — XMLRPC 服务端与客户端模块
-
— XML-RPC client access
-
— 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 字体封装
- Tkinter 对话框
- — Tkinter 消息提示
- — 滚动文字控件
- — 拖放操作支持
- — Tk主题部件
- — 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 — 单元测试框架
- — mock对象库
- 上手指南
2to3 - 自动将 Python 2 代码转为 Python 3 代码
- test — Python回归测试包
- — Utilities for the Python test suite
- .socket_helper — Utilities for socket tests
- .script_helper — Utilities for the Python execution tests
- .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
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
未创建文档的模块
- 平台特定模块