标准库概览
以下是一些 Python3 标准库中的模块:
-
os 模块:os 模块提供了许多与操作系统交互的函数,例如创建、移动和删除文件和目录,以及访问环境变量等。
-
sys 模块:sys 模块提供了与 Python 解释器和系统相关的功能,例如解释器的版本和路径,以及与 stdin、stdout 和 stderr 相关的信息。
-
time 模块:time 模块提供了处理时间的函数,例如获取当前时间、格式化日期和时间、计时等。
-
datetime 模块:datetime 模块提供了更高级的日期和时间处理函数,例如处理时区、计算时间差、计算日期差等。
-
random 模块:random 模块提供了生成随机数的函数,例如生成随机整数、浮点数、序列等。
-
math 模块:math 模块提供了数学函数,例如三角函数、对数函数、指数函数、常数等。
-
re 模块:re 模块提供了正则表达式处理函数,可以用于文本搜索、替换、分割等。
-
json 模块:json 模块提供了 JSON 编码和解码函数,可以将 Python 对象转换为 JSON 格式,并从 JSON 格式中解析出 Python 对象。
-
urllib 模块:urllib 模块提供了访问网页和处理 URL 的功能,包括下载文件、发送 POST 请求、处理 cookies 等。
操作系统接口
os 模块提供了不少与操作系统相关联的函数,例如文件和目录的操作。
建议使用 import os
风格而非 from os import *
,这样可以保证随操作系统不同而有所变化的 os.open()
不会覆盖内置函数 open()
。
在使用 os 这样的大型模块时内置的 dir() 和 help() 函数非常有用:
-
dir() 函数可以列出模块中的所有可用函数和变量。
-
help() 函数可以查看模块的文档字符串,以及每个函数和变量的用法。
文件通配符
glob 模块提供了一个函数用于从目录通配符搜索中生成文件列表:
命令行参数
sys 模块提供了一个 argv 变量,它是一个包含命令行参数的列表。
通用工具脚本经常调用命令行参数。这些命令行参数以链表形式存储于 sys 模块的 argv 变量。例如在命令行中执行 “python demo.py one two three” 后可以得到以下输出结果:
|
|
错误输出重定向和程序终止
sys 还有 stdin,stdout 和 stderr 属性,即使在 stdout 被重定向时,后者也可以用于显示警告和错误信息。
-
sys.stderr.write() 函数用于输出错误信息。
-
sys.exit() 函数用于终止程序。
数学
-
math 模块提供了许多数学函数,例如三角函数、对数函数、指数函数、常数等。
-
random 模块提供了生成随机数的函数,例如生成随机整数、浮点数、序列等。
访问互联网
有几个模块用于访问互联网以及处理网络通信协议。其中最简单的两个是用于处理从 urls
接收的数据的 urllib.request
以及用于发送电子邮件的 smtplib
:
|
|
日期和时间
datetime 模块提供了更高级的日期和时间处理函数,例如处理时区、计算时间差、计算日期差等。
|
|
正则表达式
re 模块提供了正则表达式处理函数,可以用于文本搜索、替换、分割等。
|
|
JSON
json 模块提供了 JSON 编码和解码函数,可以将 Python 对象转换为 JSON 格式,并从 JSON 格式中解析出 Python 对象。
|
|
数据压缩
以下模块直接支持通用的数据打包和压缩格式:zlib
,gzip
,bz2
,zipfile
,以及 tarfile
。
测试模块
开发高质量软件的方法之一是为每一个函数开发测试代码,并且在开发过程中经常进行测试
doctest 模块提供了一个工具,扫描模块并根据程序中内嵌的文档字符串执行测试。
测试构造如同简单的将它的输出结果剪切并粘贴到文档字符串中
通过用户提供的例子,它强化了文档,允许 doctest 模块确认代码的结果是否与文档一致:
|
|
unittest 模块不像 doctest 模块那么容易使用,不过它可以在一个独立的文件里提供一个更全面的测试集:
|
|