美文网首页Python的探秘过程
The Python Standard Library

The Python Standard Library

作者: WrRanX | 来源:发表于2019-08-21 08:29 被阅读0次

    善工必先利其器

    介绍

    标准库意味着由官方维护,会随着语言的演变而演变;因而值得大下功夫,好好琢磨。

    标准库非常庞大,所提供的组件涉及范围十分广泛。该库包含了多个内置模块 (以C编写),Python 程序员必须依靠它们来实现系统级功能,例如文件 I/O;此外还有大量以Python编写的模块,提供了日常编程中许多问题的标准解决方案

    概述

    本文将罗列出这些标准库,但鉴于数量众多、功能复杂。
    因此,先根据模块所针对的目标人群进行分类:入门级、高手级、骨灰级;之后根据其处理的问题进行大致分类(部分重叠)。

    但出于方便,单独列出一节简述常用标准库的功能。

    常用标准库

    完整目录

    通用

    这部分单独列出各个阶段玩家都会使用到的一些工具。

    系统工具

    该部分主要用来支持调用操作系统的一些标准库。

    系统平台无关(通用操作系统服务)

    本章中描述的各模块提供了在(几乎)所有的操作系统上可用的操作系统特性的接口,例如文件和时钟。这些接口通常以 Unix 或 C 接口为参照对象设计,不过在大多数其他系统上也可用。

    LIBRARY DESCRIPTION
    os 操作系统接口模块
    io 处理流的核心工具
    time 时间的访问和转换
    argparse 命令行选项、参数和子命令解析器
    getopt C风格的命令行解析器
    logging Python 的日志记录工具
    logging.config 日志记录配置
    logging.handlers 日志处理器
    getpass 便携式密码输入工具
    curses 终端字符单元显示的处理
    platform 获取底层平台的标识数据
    errno 标准errno系统符号
    ctypes Python 的外部函数库

    系统平台相关

    Windows系统相关模块
    Unix专有模块

    入门级

    解释器相关

    内置函数

    Python 解释器内置了很多函数和类型,您可以在任何时候使用它们;具体目录参见https://docs.python.org/zh-cn/3/library/functions.html

    内置常量

    有少数的常量存在于内置命名空间中。它们是:

    • False
    • True
    • None
    • NotImplemented
    • Ellipsis,等同于...
    • __debug__

    注解:变量名NoneFalseTrue__debug__ 无法重新赋值(赋值给它们,即使是属性名,将引发SyntaxError),所以它们可以被认为是“真正的”常数。

    site 模块(在启动期间自动导入,除非给出 -S 命令行选项)将几个常量添加到内置命名空间。 它们对交互式解释器shell很有用,并且不应在程序中使用。

    • quit(code=None)
    • exit(code=None):当打印此对象时,会打印出一条消息,例如“Use quit() or Ctrl-D (i.e. EOF) to exit”,当调用此对象时,将使用指定的退出代码来引发 SystemExit。
    • copyright
    • credits:打印或调用的对象分别打印版权或作者的文本。
    • license:当打印此对象时,会打印出一条消息“Type license() to see the full license text”,当调用此对象时,将以分页形式显示完整的许可证文本(每次显示一屏)。

    内置类型

    主要内置类型有数字、序列、映射、类、实例和异常。
    有些多项集类是可变的。它们用于添加、移除或重排其成员的方法将原地执行,并不返回特定的项,绝对不会返回多项集实例自身而是返回None
    有些操作受多种对象类型的支持;特别地,实际上所有对象都可以被比较、检测逻辑值,以及转换为字符串(使用repr()函数或略有差异的str()函数)。后一个函数是在对象由print()函数输出时被隐式地调用的。

    内置异常

    在Python中,所有异常必须为一个派生自BaseException的类的实例。在带有提及一个特定类的except子句的try语句中,该子句也会处理任何派生自该类的异常类(但不处理它所派生出的异常类)。 通过子类化创建的两个不相关异常类永远是不等效的,既使它们具有相同的名称。

    数据结构

    本章节描述的模块提供了一系列专门的数据类型例如日期与时间、固定类型的数组、堆队列、同步队列与集合等。
    Python同样提供一些内置的数据类型,特别的,dictlistsetfrozenset 以及tuplestr类通常指Unicode 字符串,并且bytes通常指二进制数据

    LIBRARY DESCRIPTION
    datetime 基本的日期和时间类型
    calendar 日历相关函数
    collections 容器数据类型
    collections.abc 容器的抽象基类
    heapq 堆队列算法
    bisect 数组二分查找算法
    array 处理数值类型高效的数组
    weakref 弱引用
    types 动态创建类型,为内建类型提供指代
    copy 浅层 (shallow) 和深层 (deep) 复制操作
    pprint 数据美化输出
    reprlib repr()的可替换实现
    enum 对枚举(enumerations)进行支持

    数学和数学模块

    本章介绍的模块提供与数字和数学相关的函数和数据类型。numbers模块定义了数字类型的抽象层次结构。 mathcmath模块包含浮点数和复数的各种数学函数。decimal模块支持使用任意精度算术的十进制数的精确表示。

    LIBRARY DESCRIPTION
    numbers 数字的抽象基类
    math 数学函数
    decimal 十进制定点和浮点运算
    fractions 分数
    random 生成伪随机数
    statistics 数学统计函数

    文件和目录访问

    本章中描述的模块处理磁盘文件和目录。 例如,有一些模块用于读取文件的属性,以可移植的方式操作路径以及创建临时文件。

    LIBRARY DESCRIPTION
    pathlib 面向对象的文件系统路径
    os.path 常见路径操作
    fileinput 提供多个输入流的迭代功能
    stat 解释stat()的结果
    filecmp 文件及目录的比较
    tempfile 产生临时文件及文件夹
    glob Unix类型路径名扩展
    fnmatch Unix类型文件名匹配
    linecache 随机访问文本行
    shutil 高层次文件操作接口
    macpath Mac OS 9 路径操作函数

    更多:
    模块 os:操作系统接口,包括处理比Python文件对象更低级别文件的功能。
    模块 io:Python的内置 I/O 库,包括抽象类和一些具体的类,如文件 I/O 。
    内置函数 open():使用 Python 打开文件进行读写的标准方法。

    高手级

    编程范式

    函数式编程模块

    本章里描述的模块提供了函数和类,以支持函数式编程风格和在可调用对象上的通用操作。

    LIBRARY DESCRIPTION
    itertools 为高效循环而创建迭代器的函数
    functools 高阶函数和可调用对象上的操作
    operator 标准运算符替代函数

    并发执行

    本章中描述的模块支持并发执行代码。 适当的工具选择取决于要执行的任务(CPU密集型或IO密集型)和偏好的开发风格(事件驱动的协作式多任务或抢占式多任务处理)。

    LIBRARY DESCRIPTION
    threading 基于线程的并行
    multiprocessing 基于进程的并行
    concurrent 启动并行任
    subprocess 子进程管理
    sched 事件调度器
    queue 一个同步的队列类
    _thread 底层多线程 API
    _dummy_thread _thread 的替代模块
    dummy_threading 可直接替代 threading 模块。

    开发生命周期相关

    该部分主要是用来支撑软件工程的某些生命周期所需的功能。

    开发工具

    本章中描述的各模块可帮你编写 Python 程序。例如,pydoc 模块接受一个模块并根据该模块的内容来生成文档。doctestunittest 这两个模块包含了用于编写单元测试的框架,并可用于自动测试所编写的代码,验证预期的输出是否产生。2to3 程序能够将 Python 2.x 源代码翻译成有效的 Python 3.x 源代码。

    LIBRARY DESCRIPTION
    typing 类型标注支持
    pydoc 文档生成器及在线求助系统
    doctest 测试交互性的Python示例
    unittest 单元测试框架
    unittest.mock mock对象库
    `2to3 - 自动将 Python 2 代码转为 Python 3 代码
    test 支持 Python 回归测试
    test.support Python 测试组曲的实用工具
    test.support.script_helper Python执行测试的使用工具

    调试和分析

    这些库可以帮助你进行Python开发:调试器使你能够逐步执行代码,分析堆栈帧并设置断点等,而分析器运行代码并为你提供执行时间的详细分类,从而使你能够找出你程序中的瓶颈。

    LIBRARY DESCRIPTION
    bdb debugger框架
    faulthandler 转存 Python 错误回溯
    pdb Python的调试器
    timeit 测量小代码片段的执行时间
    trace 追溯 Python 语句执行情况
    tracemalloc 跟踪内存分配

    软件打包和分发

    这些库可帮助你发布和安装 Python 软件。

    LIBRARY DESCRIPTION
    distutils 构建和安装 Python 模块
    ensurepip 引导 pip 安装器
    venv 创建虚拟环境
    zipapp 管理可执行的 Python zip压缩包

    骨灰级

    Python运行时服务

    本章里描述的模块提供了和Python解释器及其环境交互相关的广泛服务。

    LIBRARY DESCRIPTION
    sys 系统相关的参数和函数
    sysconfig 访问 Python's 配置信息
    builtins 内建对象
    __main__ 顶层脚本环境
    warnings 警告控制
    dataclasses 数据类
    contextlib with语句上下文的实用工具
    abc 抽象基类
    atexit 退出处理器
    traceback 打印或检索堆栈回溯
    __future__ Future 语句定义
    gc 垃圾回收器接口
    inspect 检查对象
    site site配置钩子

    自定义Python解释器

    本章中描述的模块允许编写类似于 Python 的交互式解释器的接口。

    LIBRARY DESCRIPTION
    code 解释器基类
    codeop 编译Python代码

    导入模块

    本章中介绍的模块提供了导入其他Python模块和挂钩以自定义导入过程的新方法。

    LIBRARY DESCRIPTION
    zipimport 从zip压缩包中导入模块
    pkgutil 包扩展的实用工具
    modulefinder 查找脚本使用的模块
    runpy 定位与执行 Python 模块
    importlib import 的实现

    Python语言服务

    Python 提供了许多模块来帮助使用 Python 语言。 这些模块支持标记化、解析、语法分析、字节码反汇编以及各种其他工具。

    LIBRARY DESCRIPTION
    parser 访问 Python 解析树
    ast 抽象语法树
    symtable 访问 编译器的符号表
    symbol 与 Python 解析树一起使用的常量
    token 与Python解析树一起使用的常量
    keyword 检验Python关键字
    tokenize Python源码的Tokenizer
    tabnanny 模糊缩进检测
    pyclbr Python 类浏览器的支撑包
    py_compile 编译 Python 源码
    compileall 二进制编码 Python库
    dis Python 字节码反汇编器
    pickletools pickle开发者的工具箱

    任务相关

    该部分罗列的是与需求域相关的一些标准库。

    文字处理

    文本处理服务

    本小节介绍的模块提供了广泛的字符串操作和其他文本处理服务。
    二进制数据服务之下描述的codecs模块也与文本处理高度相关。此外也请参阅Python内置字符串类型的文档文本序列类型 -- str

    LIBRARY DESCRIPTION
    string 常见的字符串操作
    re 正则表达式操作
    difflib 计算差异的辅助工具
    textwrap 文本自动换行与填充
    unicodedata Unicode 数据库
    stringprep 因特网字符串预备
    readline GNU readline 接口
    rlcompleter GNU readline 的补全函数

    数据处理

    文件格式

    本章中描述的模块解析各种不是标记语言且与电子邮件无关的杂项文件格式。

    LIBRARY DESCRIPTION
    csv CSV 文件读写
    configparser Configuration file parser
    netrc netrc file processing
    xdrlib Encode and decode XDR data
    plistlib Generate and parse Mac OS X .plist files

    数据压缩和存档

    本章中描述的模块支持 zlib、gzip、bzip2 和 lzma 数据压缩算法,以及创建 ZIP 和 tar 格式的归档文件。参见由 shutil 模块提供的 Archiving operations 。

    LIBRARY DESCRIPTION
    zlib 与 gzip 兼容的压缩
    gzip 对 gzip 格式的支持
    bz2 对 bzip2 压缩算法的支持
    lzma 用 LZMA 算法压缩
    zipfile 使用ZIP存档
    tarfile 读写tar归档文件

    结构化标记处理工具

    Python 支持各种模块,以处理各种形式的结构化数据标记。 这包括使用标准通用标记语言(SGML)和超文本标记语言(HTML)的模块,以及使用可扩展标记语言(XML)的几个接口。

    LIBRARY DESCRIPTION
    html 超文本标记语言支持
    html.parser 简单的 HTML 和 XHTML 解析器
    html.entities HTML 一般实体的定义
    xml.etree.ElementTree The ElementTree XML API
    xml.dom The Document Object Model 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解析

    二进制数据服务

    本章介绍的模块提供了一些操作二进制数据的基本服务操作。 有关二进制数据的其他操作,特别是与文件格式和网络协议有关的操作,将在相关章节中介绍。
    下面描述的一些库文本处理服务也可以使用ASCII兼容的二进制格式(例如re)或所有二进制数据(例如difflib)。
    另外,请参阅Python的内置二进制数据类型的文档二进制序列类型 --- bytes, bytearray, memoryview

    LIBRARY DESCRIPTION
    struct 将字节串解读为打包的二进制数据
    codecs 编解码器注册和相关基类

    数据持久化

    本章中描述的模块支持在磁盘上以持久形式存储 Python 数据。picklemarshal模块可以将许多 Python 数据类型转换为字节流,然后从字节中重新创建对象。各种与 DBM 相关的模块支持一系列基于散列的文件格式,这些格式存储字符串到其他字符串的映射。

    LIBRARY DESCRIPTION
    pickle Python 对象序列化
    copyreg pickle支撑函数的注册表
    shelve Python 对象持久化
    marshal 内部 Python 对象序列化
    dbm UNIX "数据库"的接口
    sqlite3 SQLite 数据库 DB-API 2.0 接口模块

    网络开发

    网络和进程间通信

    本章介绍的模块提供了网络和进程间通信的机制。

    某些模块仅适用于同一台机器上的两个进程,例如signalmmap。其他模块支持两个或多个进程可用于跨机器通信的网络协议。

    LIBRARY DESCRIPTION
    asyncio 异步 I/O
    socket 底层网络接口
    ssl socket对象的TLS/SSL包装器
    select 等待 I/O 完成
    selectors 高级 I/O 复用库
    asyncore 异步socket处理器
    asynchat 异步 socket 指令/响应 处理器
    signal 设置异步事件处理程序
    mmap 内存映射文件支持

    互联网数据处理

    本章介绍了支持处理互联网上常用数据格式的模块。

    LIBRARY DESCRIPTION
    email 电子邮件与 MIME 处理包
    json JSON 编码和解码器
    mailcap 处理Mailcap文件 file handling
    mailbox 管理不同格式的邮箱
    mimetypes 将文件名映射为MIME类型
    base64 Base16, Base32, Base64, Base85 数据编码
    binhex 对binhex4文件进行编码和解码
    binascii 二进制和 ASCII 码互转
    quopri MIME 可打印字符引用编码数据(MIME quoted-printable data)的解码与编码
    uu uuencode格式数据的编码与解码

    互联网协议和支持

    本章介绍的模块实现了互联网协议并支持相关技术。 它们都是用 Python 实现的。 这些模块中的大多数都需要存在依赖于系统的模块 socket ,目前大多数流行平台都支持它。

    LIBRARY DESCRIPTION
    webbrowser 方便的Web浏览器控制器
    cgi 支持Common Gateway Interface
    cgitb CGI脚本的追踪管理器
    wsgiref WSGI实用工具及参考实现
    urllib URL 处理模块
    urllib.request 用于打开 URL 的可扩展库
    urllib.response urllib 使用的 Response 类
    urllib.parse 将 URLs 解析为各组件
    urllib.error urllib.request 引发的异常类
    urllib.robotparser robots.txt 语法分析程序
    http.client HTTP 协议客户端
    ftplib FTP 协议客户端
    poplib POP3 协议客户端
    imaplib IMAP4 协议客户端
    nntplib NNTP 协议客户端
    smtplib SMTP 协议客户端
    smtpd SMTP 服务端
    telnetlib Telnet 客户端
    uuid UUID(RFC 4122) 对象
    socketserver 网络服务器框架
    http.server HTTP 服务器
    http.cookies HTTP 状态管理
    http.cookiejar HTTP 客户端的 Cookie 处理
    xmlrpc XMLRPC 服务端与客户端模块
    xmlrpc.client XML-RPC 客户端
    xmlrpc.server 基础的 XML-RPC 服务器
    ipaddress IPv4/IPv6 操作库

    国际化

    本章中介绍的模块通过提供选择要在程序信息中使用的语言的机制或通过定制输出以匹配本地约定来帮助你编写不依赖于语言和区域设置的软件。

    LIBRARY DESCRIPTION
    gettext 多语种国际化服务
    locale 国际化服务

    其他

    多媒体服务

    本章描述的模块实现了主要用于多媒体应用的各种算法或接口。

    LIBRARY DESCRIPTION
    audioop 操作原始音频数据
    aifc 读写AIFF/AIFC文件
    sunau 读写 Sun AU 文件
    wave 读写WAV格式文件
    chunk 读写IFF块文件
    colorsys 颜色系统间的转换
    imghdr 推测图像类型
    sndhdr 推测声音文件的类型
    ossaudiodev 访问兼容OSS的音频设备

    加密服务

    本章中描述的模块实现了加密性质的各种算法。 它们可由安装人员自行决定。 在Unix系统上,crypt模块也可以使用。

    LIBRARY DESCRIPTION
    hashlib 安全哈希与消息摘要
    hmac 基于密钥的消息验证
    secrets 为密钥生成安全的随机数

    程序框架界面

    本章中描述的模块是很大程度上决定程序结构的框架。 目前,这里描述的模块都面向编写命令行接口。

    LIBRARY DESCRIPTION
    turtle 海龟绘图
    cmd 支持面向行的命令解释器
    shlex 简单词法分析器

    杂项

    Tk图形用户界面:https://docs.python.org/zh-cn/3/library/tk.html
    formatter (已移除,通用的输出排版):https://docs.python.org/zh-cn/3/library/formatter.html
    contextvars(上下文变量管理):https://docs.python.org/zh-cn/3/library/contextvars.html

    参考资料

    Python3官方文档:https://docs.python.org/3/library/

    相关文章

      网友评论

        本文标题:The Python Standard Library

        本文链接:https://www.haomeiwen.com/subject/rqbvsctx.html