一、 文本处理服务
- string模块 : 常见的字符串操作
- difflib模块: 计算差异的辅助工具
- textwrap模块: 文本自动换行与填充,能够格式化文本段落,以适应给定的屏幕宽度;
- unicodedata模块: Unicode 数据库
- stringprep模块: 因特网字符串预备
- readline模块: GNU readline 接口
- rlcompleter模块: GNU readline 的补全函数
二、 二进制数据服务
- struct模块:将字节串解读为打包的二进制数据,提供了 pack() 和 unpack() 函数,用于处理不定长度的二进制记录格式;
- codecs模块:编解码器注册和相关基类
三、 数据类型
- datetime模块:基础 日期 和 时间 数据类型
- calendar模块:日历相关函数
- collections模块: collections.abc模块:容器的抽象基类
- bisect模块:提供用于操作排序列表的函数,如数组二分查找算法
- weakref模块:Python 会自动进行内存管理,当某个对象的最后一个引用被移除后不久就会释放其所占用的内存。此方式对大多数应用来说都适用,但偶尔也必须在对象持续被其他对象所使用时跟踪它们。 不幸的是,跟踪它们将创建一个会令其永久化的引用。 weakref 模块提供的工具可以不必创建引用就能跟踪对象。 当对象不再需要时,它将自动从一个弱引用表中被移除,并为弱引用对象触发一个回调。
- types模块:动态类型创建以及内建类型名字
- copy模块:浅层 (shallow) 和深层 (deep) 复制操作
- pprint模块: pprint提供了更加复杂的打印控制,其输出的内置对象和用户自定义对象能够被解释器直接读取。当输出结果过长而需要折行时,“美化输出机制”会添加换行符和缩进,以更清楚地展示数据结构;
- reprlib模块:增强的repr模块
- enum模块:枚举类型支持
- array 模块:提供了一种 array() 对象,它类似于列表,但只能存储类型一致的数据且存储密集更高;
- collections 模块:容器数据类型,提供了一种 deque() 对象,它类似于列表,但从左端添加和弹出的速度较快,而在中间查找的速度较慢。 此种对象适用于实现队列和广度优先树搜索;
- heapq 模块:提供了基于常规列表来实现堆的函数。 这对于需要重复访问最小元素而不希望运行完整列表排序的应用来说非常有用。
四、 数字和数学模块
- numbers模块:数字的抽象基类;
- cmath:关于复数的数学函数;
- decimal模块:十进制定点和浮点运算,提供了一种 Decimal 数据类型用于十进制浮点运算。 相比内置的 float 二进制浮点实现,该类特别适用于财务应用和其他需要精确十进制表示的用途,能构造用户期望结果与手工完成的计算相匹配的应用程序;
- fractions模块:分数
- statistics 模块计算数值数据的基本统计属性(均值,中位数,方差等)。
五、 文件和目录访问
- pathlib模块:面向对象的文件系统路径
- os.path模块:常见路径操作
- fileinput模块:文件读取
- filecmp模块:文件及目录的比较
- tempfile模块:用于临时文件和目录管理
- glob模块:Unix风格路径模式扩展,glob 模块提供了一个在目录中使用通配符搜索文件列表的函数,如glob.glob("*.txt")在当前目录下搜索所有txt文件;
glob.glob("*.txt")
[‘cookie.txt’, ‘test - 副本.txt’, ‘test.txt’, ‘test1.txt’, ‘test2.txt’, ‘test3.txt’, ‘test4.txt’, ‘test5.txt’, ‘urllist - 副本.txt’, ‘urllist.txt’]
- fnmatch模块:Unix文件模式匹配
- linecache模块:文本文件的行随机访问
- shutil 模块提供了高级的日常文件和目录管理功能,如文件拷贝、移动等,如shutil.copyfile(‘src.txt’, ‘dest.dtxt’);
- macpath模块:Mac OS 9 路径操作函数。
六、 函数式编程模块
- itertools模块:为高效循环而创建迭代器的函数
- functools模块:高阶函数和可调用对象上的操作
- operator模块:标准运算符替代函数
七、 数据持久化
- pickle:Python 对象序列化,pickle可以把字典、列表等结构化数据存到本地文件,读取后返回的还是字典、列表等结构化数据
- copyreg模块:注册表序列化访问;
- shelve模块:Python对象持久化
- marshal模块:Python内部对象序列化
- dbm模块: Unix "databases"接口
- sqlite3模块:SQLite 数据库 DB-API 2.0 接口模块,该模块是SQLite数据库库的包装器,提供了一个可以使用稍微非标准的SQL语法更新和访问的持久数据库;
八、 数据压缩和存档
- zlib模块:与 gzip 兼容的压缩
- gzip模块:对 gzip 格式的支持
- bz2模块:对 bzip2 压缩算法的支持
- lzma模块:用 LZMA 算法压缩
- zipfile模块:使用ZIP存档
- tarfile模块:读写tar归档文件
九、 文件格式
- csv模块:CSV 文件读写, 支持以逗号分隔值格式直接读取和写入文件
- configparser模块:Configuration 文件解析
- netrc模块:netrc文件处理
- xdrlib模块: XDR 数据编解码
- plistlib模块: Mac OS X .plist 文件的生成和解析
十、 加密服务
- hashlib模块:安全哈希与消息摘要
- hmac模块:基于密钥的消息验证
- secrets模块:为安全管理提供安全随机数字
十一、 通用操作系统服务
- argparse模块:模块提供处理命令行参数的相关系列功能,包括命令行选项、参数和子命令解析器
- getopt模块:C风格命令行选项解释
- logging模块:Python 的日志记录工具
- logging.config模块:日志记录配置
- logging.handlers模块:Logging处理
- getpass模块:便携式密码输入工具
- curses模块:终端字符单元显示的处理
- curses.textpad模块:图形程序文本输入组件
- curses.ascii模块: ASCII 字符工具
- curses.panel模块:图形面板堆栈扩展
- platform模块:获取底层平台的标识数据
- errno模块:标准错误标识
- ctypes模块:Python 的外部函数库
十二、 并发执行
- threading模块:提供Python代码的多线程支持,不过老猿听说由于Python多线程内核的先天性缺陷,Python的多线程相对单进程效率基本没有提升,老猿没有验证;
- multiprocessing模块:基于进程的并行
- concurrent 包:并发包
- concurrent.futures模块:启动并行任务
- subprocess模块:子进程管理
- sched模块:事件调度器
- queue模块:一个同步的队列类
- _thread模块:底层多线程 API
- _dummy_thread模块:_thread 的替代模块
- dummy_threading模块:可直接替代 threading 模块。
十三、 contextvars模块:上下文变量、手工上下文管理、异步IO支持
十四、 网络和进程间通信
- asyncio模块:异步 I/O
- socket模块:底层网络接口
- ssl模块:套接字对象TLS/SSL包装器
- select模块:Waiting for I/O completion
- selectors模块:高级 I/O 复用库
- asyncore模块:异步socket处理器
- asynchat模块:异步 socket 指令/响应 处理器
- signal模块:设置异步事件处理程序
- mmap模块:内存映射文件支持
十五、 互联网数据处理
- email模块:电子邮件与 MIME 处理包
- json模块:JSON 编码和解码器
- mailcap模块:Mailcap文件处理
- mailbox模块:各种格式的邮箱封装
- mimetypes模块:文件到MIME类型映射
- base64模块:Base16, Base32, Base64, Base85 数据编码
- binhex模块:对binhex4文件进行编码和解码
- binascii模块:二进制和 ASCII 码互转
- quopri模块:对mime引用的可打印数据进行编码和解码
- uu模块: uuencode文件编码和解码。
十六、 互联网协议和支持
- webbrowser模块:方便的Web浏览器控制器
- cgi模块:cgi支持
- cgitb模块:CGI脚本回溯管理
- wsgiref模块:WSGI 工具和参考实现
- 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协议客户端
- smtplib —SMTP协议客户端
- smtpd模块:SMTP 协议服务端
- telnetlib模块:Telnet 协议客户端
- uuid模块:UUID 对象
- socketserver模块:网络服务器框架
- http.server模块:HTTP 服务器
- http.cookies模块:HTTP状态管理
- http.cookiejar模块:HTTP 客户端Cookie管理
- xmlrpc模块:XMLRPC 服务端与客户端模块
- xmlrpc.client模块:XML-RPC客户端访问
- xmlrpc.server模块:基础 XML-RPC 服务
- ipaddress模块:IPv4/IPv6 操作库
十七、 多媒体服务
- audioop模块:原始音频数据管理
- aifc模块: AIFF 和 AIFC 文件读写
- sunau模块:读写 Sun AU 文件
- wave模块:读写WAV格式文件
- chunk模块:读 IFF 块数据
- colorsys模块:颜色系统间的转换
- imghdr模块:推测图像类型
- sndhdr模块:推测声音文件的类型
- ossaudiodev模块:访问 OSS兼容的声音设备
十八、 程序框架
- turtle模块:海龟绘图
- cmd模块:支持面向行的命令解释器
- shlex模块:简单词法分析
十九、 Tk图形用户界面(GUI)
- tkinter模块:Tcl/Tk的Python接口
- tkinter.ttk模块:Tk组件
- tkinter.tix模块: Tk扩展组件
- tkinter.scrolledtext模块:滚动文字控件
老猿学过一段时间TK,感觉一是Tk本身不支持在界面上自己拖拽创建界面,二是Tk的组件不成熟,经常出现莫名的错误,因此老猿不推荐使用Tk,建议大家使用PyQt。
二十、 国际化
- gettext模块:多语种国际化服务
- locale模块:国际化服务
二十一、 结构化标记处理工具
- html模块:超文本标记语言支持
- json 包:为解析json的数据交换格式提供了强大的支持;
- html.parser模块:简单的 HTML 和 XHTML 解析器
- html.entities模块:HTML 一般实体的定义
- XML处理包:
- xml.etree.ElementTree模块:支持 ElementTree XML的 API
- xml.dom模块:支撑DOM的API
- xml.dom.minidom模块:最小的 DOM 实现
- xml.dom.pulldom模块:支撑创建部分 DOM 树
- xml.sax模块:支撑SAX2 解析
- xml.sax.handler模块: SAX 处理基类
- xml.sax.saxutils模块:SAX 工具集
- xml.sax.xmlreader模块: XML 解析接口
- xml.parsers.expat模块:使用Expat进行 XML快速解析
二十二、 开发工具
- typing模块:类型标注支持
- pydoc模块:文档生成器和在线帮助系统支持
- doctest模块:测试交互性的Python示例
- unittest模块:单元测试框架
- unittest.mock模块:mock 对象库及unittest.mock 上手指南
- 2to3 :自动将 Python 2 代码转为 Python 3 代码
- test模块:Python的回归测试包
- test.support模块:python测试套件的实用程序
- test.support.script_helper模块:用于python执行测试的实用程序
二十三、 调试和分析
- bdb模块:Debugger 框架
- faulthandler模块:Dump Python 轨迹
- pdb模块:Python的调试器
- timeit模块:测量小代码片段的执行时间
- trace模块:跟踪或跟踪python语句执行
- tracemalloc模块:跟踪内存分配
二十四、 软件打包和分发
- distutils模块:构建和安装 Python 模块
- ensurepip模块:引导PIP安装程序
- venv模块:创建虚拟环境。Python应用程序通常会使用不在标准库内的软件包和模块。应用程序有时需要特定版本的库,因为应用程序可能需要修复特定的错误,或者可以使用库的过时版本的接口编写应用程序。这意味着一个Python安装可能无法满足每个应用程序的要求。如果应用程序A需要特定模块的1.0版本但应用程序B需要2.0版本,则需求存在冲突,安装版本1.0或2.0将导致某一个应用程序无法运行。这个问题的解决方案是创建一个 virtual environment,一个目录树,其中安装有特定Python版本,以及许多其他包。然后,不同的应用将可以使用不同的虚拟环境。用于创建和管理虚拟环境的模块称为 venv。venv 通常会安装你可用的最新版本的 Python。如果您的系统上有多个版本的 Python,您可以通过运行 python3 或您想要的任何版本来选择特定的Python版本;
- zipapp模块:管理可执行python zip存档
二十五、 Python运行时服务
- sys模块:系统相关的参数和函数
- sysconfig模块:提供对python配置信息的访问
- builtins模块:内建对象
- __main__模块:顶层脚本环境
- warnings模块:告警控制
- dataclasses模块:数据类
- contextlib模块:WITH语句上下文实用程序
- abc模块:抽象基类
- atexit模块:退出处理器
- traceback模块:打印或检索堆栈回溯
- __future__模块:Future 语句定义
- gc模块:垃圾回收器接口
- inspect模块:检查对象
- site模块:站点特定配置挂接
二十六、 自定义 Python 解释器
- code模块:解释器基类
- codeop模块:编译Python代码
二十七、 导入模块
- zipimport模块:从zip归档文件导入模块
- pkgutil模块:包扩展工具
- modulefinder模块:查找脚本使用的模块
- runpy模块:定位和执行Python模块支持
- importlib模块:import 的实现
二十八、 Python 语言服务
- parser模块:访问 Python分析树
- ast模块:抽象语法树
- symtable模块:访问编译器符号表
- symbol模块:与 Python 解析树一起使用的常量
- token模块:与Python解析树一起使用的常量
- keyword模块:检验Python关键字
- tokenize模块:python源标记器
- tabnanny模块:模糊缩进检测
- pyclbr模块:Python 类浏览支持
- py_compile模块: Python源文件编译
- compileall模块:Python库字节编译
- dis模块:Python 字节码反汇编器
- pickletools模块:pickle开发人员的工具
二十九、 Windows系统相关模块
- msilib模块:读写微软安装文件
- msvcrt模块:来自MS VC++运行时的有用例程
- winreg模块:Windows 注册表访问
- winsound模块:windows声音播放接口
三十、 Unix 专有服务
- posix模块:最常见的POSIX系统调用
- pwd模块:用户密码数据库
- spwd模块:shadow密码数据库
- grp模块:组数据库
- crypt模块: Unix 密码校验
- termios模块:POSIX 风格的终端控制
- tty模块:终端控制功能
- pty模块:伪终端控制
- fcntl模块:fcntl和ioctl系统调用
- pipes模块:与shell管道的接口
- resource模块:资源使用信息
- nis模块:Sun的NIS接口(黄页)
- Unix syslog 库例程
本节老猿将没有重点介绍的但老猿觉得有一定作用的内置标准库的模块进行了一个罗列,这些模块老猿基本都没有使用过,也许在后面的中级课程内介绍其中的一部分,罗列在此是供大家一个索引,具体使用请查找详细的文档。