本章节就 Python3 的标准库作一个轮廓概览,后续章节将对每个标准库模块进行详细讲解
1、操作系统接口1.1 os 模块简介os 模块提供了很多与操作系统相关联的函数,这使得程序员们在编程的时候能利用函数灵活操作与使用,如果你希望你的程序能够与平台无关的话,运用这个模块中的功能就尤为重要。在使用 os 模块前,需要先 import os 引入模块。以下方法只做介绍,具体的应用可以使用 help(os) 查看帮助文档,最重要的是实际操作。 1.1.1 操作系统相关调用和操作 os.name 获取操作系统平台 os.environ 一个 dictionary 包含环境变量的映射关系 print(os.environ) 输出环境变量值 os.system() 用来运行shell命令 os.chdir(dir) 改变当前目录 os.chdir('F:\WprkSpace’) 注意符号转义 os.getegid() 得到有效组id os.getgid() 得到组id os.getuid() 得到用户id os.geteuid() 得到有效用户id os.setegid os.setegid() os.seteuid() os.setuid() 设置id os.getgruops() 得到用户组名称列表 os.getlogin() 得到用户登录名称 os.getenv 得到环境变量 os.putenv 设置环境变量 os.umask 设置umask os.system(cmd) 利用系统调用,运行cmd命令 1.1.2 文件目录相关操作 os.getcwd() # 获取现在的工作目录 os.listdir() 获取某个目录下的所有文件名 os.remove() 删除某个文件 os.path.exists() 检验给出的路径是否真地存在 os.path.isfile() 判断是否为文件;若是,返回值为真 os.path.isdir() 判断是否为文件夹;若是,返回值为真 os.path.abspath(name) 获得绝对路径 os.path.splitext() 分离文件名与扩展名 os.path.split() 把一个路径拆分为目录+文件名的形式 os.path.join(path,name) 连接目录与文件名或目录 os.path.basename(path) 返回文件名 os.path.dirname(path) 返回文件路径 1.2 shutil 模块-高级文件操作shutil 是高级的文件,文件夹,压缩包处理模块。常用方法如下: # 将文件内容拷贝到另一个文件中 shutil.copyfileobj(fsrc, fdst[, length])
# 拷贝文件 shutil.copyfile(src, dst, *, follow_symlinks=True)
# 仅拷贝权限。内容、组、用户均不变 shutil.copymode(src, dst)
# 仅拷贝状态信息,包括:mode bits, atime, mtime, flags shutil.copystat(src, dst)
# 拷贝文件和权限 shutil.copy(src, dst)
# 拷贝文件和状态信息 shutil.copy2(src, dst)
# 递归的去拷贝文件夹 shutil.ignore_patterns(*patterns) shutil.copytree(src, dst, symlinks=False, ignore=None)
# 递归删除文件夹 shutil.rmtree(path[, ignore_errors[, onerror]])
# 递归的去移动文件,它类似mv命令,其实就是重命名。 shutil.move(src, dst)
# 创建压缩包并返回文件路径,例如:zip、tar shutil.make_archive(base_name, format,...)
2、命令行参数2.1 sys 模块通用实用程序脚本通常需要处理命令行参数。这些参数作为列表存储在 sys 模块的 argv 属性中 2.2 argparse 模块argparse 模块提供了一种处理命令行参数的机制。它应该总是优先于直接手工处理 sys.argv。 3、文件通配符 globglob 模块提供了一个在目录中使用通配符搜索创建文件列表的函数 4、错误输出重定向和程序终止错误输出重定向和终止程序使用 sys 模块,sys 模块还具有 stdin , stdout 和 stderr 的属性。后者对于发出警告和错误消息非常有用,即使在 stdout 被重定向后也可以看到它们。 sys.stderr.write('Warning, log file not found starting a new one\n') Warning, log file not found starting a new one 终止脚本: sys.exit() 5、字符串模式匹配5.1 正则表达式字符串模式匹配通常也称为正则表达式,使用Python中的 re 标准库,re 模块为高级字符串处理提供正则表达式工具。对于复杂的匹配和操作,正则表达式提供简洁,优化的解决方案,具体的用法后续的文章会单独做详细操作介绍。 6、数学6.1 math 模块数学的计算与应用使用 math 模块,math 模块提供了对浮点数学的底层函数访问; 6.2 random 模块random 模块提供了进行随机选择的工具 6.3 statisticsstatistics 模块计算数值数据的基本统计属性(均值,中位数,方差等) 7、互联网访问有许多模块可用于访问互联网和处理互联网协议。
8、时间和日期datetime 模块提供了以简单和复杂的方式操作日期和时间的类。虽然支持日期和时间算法,但实现的重点是有效的成员提取以进行输出格式化和操作。该模块还支持可感知时区的对象。 9、数据压缩Python 中常见的数据存档和压缩格式由模块直接支持,包括:zlib, gzip, bz2, lzma, zipfile 和 tarfile。 10、性能测试一些Python用户对了解同一问题的不同方法的相对性能产生了浓厚的兴趣。Python提供了一种可以立即回答这些问题的测量工具。 例如,元组封包和拆包功能相比传统的交换参数可能更具吸引力。timeit 模块可以快速演示在运行效率方面一定的优势 >>> from timeit import Timer >>> Timer('t=a; a=b; b=t', 'a=1; b=2').timeit() 0.57535828626024577 >>> Timer('a,b = b,a', 'a=1; b=2').timeit() 0.54962537085770791 与 timeit 的精细粒度级别相反, profile 和 pstats 模块提供了用于在较大的代码块中识别时间关键部分的工具。 11、质量控制开发高质量软件的一种方法是在开发过程中为每个函数编写测试,并在开发过程中经常运行这些测试。 11.1 doctestdoctest 模块提供了一个工具,用于扫描模块并验证程序文档字符串中嵌入的测试。测试构造就像将典型调用及其结果剪切并粘贴到文档字符串一样简单。这通过向用户提供示例来改进文档,并且它允许doctest模块确保代码保持对文档的真实 11.2 unittestunittest 模块不像 doctest 模块那样易于使用,但它允许在一个单独的文件中维护更全面的测试集 12、自带电池Python 有“自带电池”的理念。Python 自带电池指的是 Python 内置的模块,通过其包的复杂和强大功能可以最好地看到这一点。例如:
总结本节给大家介绍了 Python 常用标准库的基本概念,在后续的文章中将对具体的模块作详细介绍,更好的对 Python 工程师使用标准库提供支撑。
|
|