Python Tutorial(十):浏览标准库(一)
10.1 操作系统接口
os模块提供很多函数用于和操作系统的交互:
确定使用import os风格而不是from os import *。这将避免os.open()被内建的open()函数遮住,它的操作截然不同。
内建的函数dir()和help()作为交互助手对于大的模块像os是非常有用的:
对于日常的文件和目录管理任务,shutil模块提供了一个更高级别的接口,使用起来很简单:
10.2 文件通配符
glob模块提供了一个函数可以从目录通配符搜索获得文件列表:
10.3 命令行参数
通常的功能脚本经常需要处理命令行参数。这些参数存储在sys模块的argv属性里,是一个列表。例如,下面是从命令行运行python demo.py one two three的输出结果:
getopt模块处理sys.argv,使用Unix的getopt()函数的约定。更加强大和灵活的命令行处理由argparse模块提供。
10.4 错误输出重定向和程序终止
sys模块也有属性stdin,stdout,stderr。后一个对于发出警告和错误消息并使它们可见非常有用,甚至当stdout已经被重定向:
最直接的方式来终止一个脚本是使用sys.exit()。
10.5 字符串模式匹配
re模块提供正则表达式用于高级的字符串处理。对于复杂的匹配和操作,正则表达式提供简洁,优化的解决方案:
当只需要简单的功能是,优先使用字符串方法,因为它们易于阅读和调试:
10.6 数学
math模块访问底层的C语言库用于浮点数学:
random模块提供工具用于随机数选择:
SciPy项目有许多其它的模块用于数字运算。
10.7 因特网访问
有许多模块用于访问因特网和处理因特网协议。最简单的两个是urllib.request用于从URL获取数据和smtplib用于发送邮件:
10.8 日期和时间
datetime模块提供一些类用于以简单和复杂的方式操作日期和时间。日期和时间的算术被支持,实现的焦点是关于为输出格式化和操作的有效数字抽取。模块也支持时区意识的对象:
10.9 数据压缩
普通的数据存档和压缩格式直接被模块支持的有,zlib,gzip,bz2,lzma,zipfile和tarfile:
10.10 性能测量
一些Python用户对同样的问题不同的解决方法的相对表现性能产生了兴趣。Python提供了一个测量工具可以立即来回答这些问题。
例如,尝试使用元组打包和解包特性而不是传统的方法来交换参数。timeit模块快速地演示一个谦虚性能好处:
相对于timeit的很好的粒度级别,profile和pstats模块提供工具用于在大块的代码中标示时间关键部分。
10.11 质量控制
开发出高质量软件的一个方法是在开发期间为每一个函数写测试,并且在开发过程中经常运行这些测试。
doctest模块提供一个工具用于扫描一个模块和验证嵌入在一个程序的文档字符串里面的测试。测试构造简单的就是剪切和粘贴一个典型的调用和它的结果到文档字符串里面。这通过给用户提供示例改进了文档,并且它允许doctest模块来确认代码对于文档来说仍然是真的:
unittest模块并不是和doctest模块一样容易,但是,它允许一个更加综合的测试集合在一个分离的文件中被维护:
10.12 包含的框架
Python有一个“框架包含”哲学。通过它的大部分包的有经验和坚定的能力可以更好的看到这一点。例如:
- xmlrpc.client和xmlrpc.server模块使远程过程调用实现到一个几乎不重要的任务中。尽管模块名称,没有直接的知识或处理必须的XML。
- email包是一个库用于管理email消息,包括MIME和其它基于RFC2822的消息文档。不像smtplib和poplib,它们实际发送和接收消息,email包有一个完整的工具集用于构建或解码复杂的消息结构(包括附件)和实现因特网编码和头协议。
- xml.dom和xml.sax包对解析这种流行的数据交互格式提供坚强的支持。同样地,csv模块支持以普通数据库格式的直接读和写。总之,这些模块和包极大的简化了在Python应用和其它工具之间的数据交互。
- 国际化通过一些模块被支持,包括gettext,locale和codecs包。
本文是对官方网站内容的翻译,原文地址:http://docs.python.org/3/tutorial/stdlib.html