第十一课时之python标准库概览

Posted lq-hacker

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十一课时之python标准库概览相关的知识,希望对你有一定的参考价值。

10.python标准库概览

 

10.1操作系统接口

 

os模块提供了很多与操作系统交互的函数(Operating System)

 

函数名

        使用方法

-getcwd()

返回当前工作目录

-chdir(path)

改变工作目录

-listdir(path=”.”)

列举指定目录中的文件名(“.”表示当前目录,”..”表示上一级目录)

-mkdir(path)

创建单层目录,如该目录已存在抛出异常

-makedirs(path)

递归创建多层目录,如该目录已存在抛出异常,注意:”E:\\\\a\\\\b”和”E:\\\\a\\c”并不会冲突

-remove()

删除文件

-rmdir(path)

删除单层目录,如该目录非空则抛出异常

-removedirs(path)

递归删除目录,从子目录到父目录逐层尝试删除,遇到目录非空抛出异常

-rename(old,new)

将文件old重命名为new

-system(command)

运行系统的shell命令

 技术分享图片

应该用import os风格而非from os import *。这样可以保证随操作系统不同而有所变化的os.open()不会覆盖内置函数open()

 

在使用一些像os这样的大型模块是内置的dir()help()函数非常有用:

 

import os
dir(os)
<returns a list of all module functions>
help(os)
<returns an extensive mnaual page created from the module’s docstring>

 

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

技术分享图片

技术分享图片

技术分享图片

 

10.2文件通配符

 

glob模块提供了一个函数用于从目录通配符搜索中生成文件列表:

技术分享图片

 

10.3命令行参数

 

通用工具脚本经常调用命名行参数。这些命令行参数以链表形式存储于sys模块的argv变量。例如在命令行中执行python demo.py one two three后可以得到以下输出结果:

import sys
print(sys.argv)
[‘demo.py’,’one’,’two’,’three’]

 

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

 

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

技术分享图片

大多数脚本的直接终止都使用sys.exit()

 

10.5字符串正则匹配

 

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

技术分享图片

只需简单的操作时,字符串方法最好用,易读:

 技术分享图片

10.6数学

 

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

技术分享图片

random提供了生成随机数的工具:

技术分享图片

 SciPy<http://scipy.org>项目提供了许多数值计算的模块

 

10.7互联网访问

 

有几个模块用于访问互联网以及处理网络通信协议。其中最简单的两个是用于处理从urls接收的数据的urllib.request以及用于发送电子邮件的smtplib:

 

  此模块在后面的网络爬虫中非常重要。

 

10.8日期和时间

 

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

 技术分享图片

10.9数据压缩

 

以下模块直接支持通用的数据打包和压缩格式:zlib,gzip,bz2,lzma,zipfile以及tarfile.

技术分享图片

10.10性能度量

 

有些1用户对了解解决同一问题的不同方法之间的性能差异很感兴趣。Python提供了一个度量工具。例如使用元祖封装和拆封来交换元素看起来要比使用传统的方法要诱人的多。timeit证明了后者更快一些:

 

 技术分享图片

相对于timeit的细粒度,profilepstats模块提供了针对更大代码块的时间度量工具。

 

10.11质量控制

 

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

 

doctest 模块提供了一个工具,扫描模块并根据程序中内嵌的文档字符串执行测试。测试构造如同简单的将它的输出结果剪切并粘贴到文档字符串中。通过用户提供的例子,它发展了文档,允许 doctest 模块确认代码的结果是否与文档一致:

 

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

 

10.12瑞士军刀 

  • xmlrpc.client 和 xmlrpc.server 模块让远程过程调用变得轻而易举。尽管模块有这样的名字,用户无需拥有 XML 的知识或处理 XML。
  • email 包是一个管理邮件信息的库,包括MIME和其它基于 RFC2822 的信息文档。
  • 不同于实际发送和接收信息的 smtplib 和 poplib 模块,email 包包含一个构造或解析复杂消息结构(包括附件)及实现互联网编码和头协议的完整工具集。
  • xml.dom 和 xml.sax 包为流行的信息交换格式提供了强大的支持。同样, csv 模块支持在通用数据库格式中直接读写。
  • 综合起来,这些模块和包大大简化了 Python 应用程序和其它工具之间的数据交换
  • 国际化由 gettext locale 和 codecs 包支持。

 

  

  

 

以上是关于第十一课时之python标准库概览的主要内容,如果未能解决你的问题,请参考以下文章

第十二课时之标准库浏览II

Python 3标准库 第十一章 网路通信

python学习之第十一课时--基本数据类型(dict)

构建之法阅读笔记08-第十一章

第十四课时之交互式输入行编辑历史回溯

第十一章:random库概述