标准库概览第Ⅰ部分

关注我们的人都能找到高薪工作

操作系统接口

os 模块提供了几十个函数与操作系统交互:

一定要使用import os 的形式而不要用 from os import * 。这将使用os.open() 从而避免屏蔽内置的open() 函数,它们的功能完全不同。

内置的dir() 和help() 函数对于使用像os 这样的大型模块可以提供非常有用的交互式帮助:

对于日常的文件和目录管理任务,shutil 模块提供了一个易于使用的高级接口:

文件通配符

glob 模块提供了一个函数用于在目录中以通配符搜索文件,并生成匹配的文件列表:

命令行参数

常见的实用程序脚本通常需要处理命令行参数。这些参数以一个列表存储在sys模块的argv 属性中。例如下面的输出结果来自于从命令行运行 python demo.py

getopt模块使用Unix getopt()函数的约定处理sys.argv。argparse模块提供更强大、 更灵活的命令行处理功能。

错误输出重定向和程序终止

sys模块还具有stdin、stdout和stderr属性。即使在stdout被重定向时,后者也可以用于显示警告和错误信息:

终止脚本最直接的方法是使用sys.exit()

字符串模式匹配

re 模块为高级的字符串处理提供了正则表达式工具。对于复杂的匹配和操作,正则表达式提供了简洁、优化的解决方案:

当只需要简单的功能时,最好使用字符串方法,因为它们更容易阅读和调试:

数学

math 模块为浮点运算提供了对底层C函数库的访问:

random 模块提供了进行随机选择的工具:

注意:SciPy项目http://scipy.org有很多其它用于数值计算的模块。

互联网访问

有很多的模块用于访问互联网和处理的互联网协议。最简单的两个是从 URL 获取数据的urllib.request 和发送邮件的smtplib:

(可能由于网络原因无法访问,另外第二个示例需要在本地主机上运行邮件服务器,这里只是作为一个演示说明)。

日期和时间

datetime模块提供了处理日期和时间的类,既有简单的方法也有复杂的方法。支持日期和时间算法的同时,实现的重点放在更有效的处理和格式化输出。该模块还支持处理时区。

数据压缩

常见的数据打包和压缩格式有模块直接支持,包括:zlib,gzip,bz2,lzma,zipfile 和tarfile.

性能度量

一些 Python 用户对同一问题的不同解决方法之间的性能差异深有兴趣。Python 提供了的一个度量工具可以立即解决这些问题。 例如,使用元组封装和拆封功能而不是传统的方法来交换参数可能会更吸引人。timeit模块快速展示了一个温和的性能优势 :

注:在第二个例子中 a和b 交互参数的方式和其他语言不太一样,原因是1和2 这两个值一旦产生,在内存中的位置是定的,a和b 就相当于是两个引用变量,和C语言中的指针类似,交换过程中,值在内存中的位置并不变,两者只是把内存地址交换了一下。

与timeit的精细的粒度相反,profile和pstats模块提供了针对更大代码块的时间度量工具。

质量控制

开发高质量软件的方法之一是为每一个函数编写测试代码,并且在开发过程中经常性的运行这些测试代码。

doctest 模块提供一个工具,扫描模块并根据程序中内嵌的文档字符串执行测试。测试的构造像一个把结果剪切并粘贴到文档字符串的典型调用一样简单。

通过用户提供的例子,它发展了文档,允许 doctest 模块确认代码的结果是否与文档一致:

unittest 模块不像 doctest 模块那样容易,不过它可以在一个独立的文件里提供一个更全面的测试集:

输出结果:

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180328B18VOF00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券