标准库简介
操作系统接口
一定要使用 import os
而不是 from os import *
。这将避免内建的 open()
函数被 os.open()
隐式替换掉,它们的使用方式大不相同。
内置的 dir()
和 help()
函数可用作交互式辅助工具,用于处理大型模块
对于日常文件和目录管理任务, shutil
模块提供了更易于使用的更高级别的接口
文件通配符
glob
模块提供了一个在目录中使用通配符搜索创建文件列表的函数:
命令行参数
这些参数作为列表存储在 sys
模块的 argv 属性中
错误输出重定向和程序终止
sys
模块还具有 stdin , stdout 和 stderr 的属性。
字符串模式匹配
re
模块为高级字符串处理提供正则表达式工具。对于复杂的匹配和操作,正则表达式提供简洁,优化的解决方案:
数学
math
模块提供对浮点数学的底层C库函数的访问:
random
模块提供了进行随机选择的工具:
statistics
模块计算数值数据的基本统计属性(均值,中位数,方差等):
互联网访问
有许多模块可用于访问互联网和处理互联网协议。其中两个最简单的 urllib.request
用于从URL检索数据,以及 smtplib
用于发送邮件:
日期和时间
datetime
模块提供了以简单和复杂的方式操作日期和时间的类。虽然支持日期和时间算法,但实现的重点是有效的成员提取以进行输出格式化和操作。该模块还支持可感知时区的对象。
数据压缩
常见的数据存档和压缩格式由模块直接支持,包括:zlib
, gzip
, bz2
, lzma
, zipfile
和 tarfile
。
性能测量
元组封包和拆包功能相比传统的交换参数可能更具吸引力。timeit
模块可以快速演示在运行效率方面一定的优势:
与 timeit
的精细粒度级别相反, profile
和 pstats
模块提供了用于在较大的代码块中识别时间关键部分的工具。
质量控制
doctest
模块提供了一个工具,用于扫描模块并验证程序文档字符串中嵌入的测试。
unittest
模块不像 doctest
模块那样易于使用,但它允许在一个单独的文件中维护更全面的测试集:
xmlrpc.client
和xmlrpc.server
模块使远程过程调用实现了几乎无关紧要的任务。尽管有模块名称,但不需要直接了解或处理XML。email
包是一个用于管理电子邮件的库,包括MIME和其他:基于 RFC 2822 的邮件文档。与smtplib
和poplib
实际上发送和接收消息不同,电子邮件包具有完整的工具集,用于构建或解码复杂的消息结构(包括附件)以及实现互联网编码和标头协议。-
json
包为解析这种流行的数据交换格式提供了强大的支持。csv
模块支持以逗号分隔值格式直接读取和写入文件,这些格式通常由数据库和电子表格支持。 XML处理由xml.etree.ElementTree
,xml.dom
和xml.sax
包支持。这些模块和软件包共同大大简化了Python应用程序和其他工具之间的数据交换。 sqlite3
模块是SQLite数据库库的包装器,提供了一个可以使用稍微非标准的SQL语法更新和访问的持久数据库。- 国际化由许多模块支持,包括
gettext
,locale
,以及codecs
包。