Python标准库通常被称为“自带的电池”,自然地提供了广泛的功能,涵盖了大概200个左右的包与模块。不断有高质量的包或模块被开发出来,极大的丰富了标准库。但有些模块放在标准库中很难去维护,比如“Berkeley DB”模块,其被清理出标准库进行单独维护。还有一些库,比如PyParsing(创建分析器)也是没有被加在标准库中。

1 字符串处理

1.1 String模块

  常量:string.ascii_letters、 string.hexdigits。

  string.Formatter子类,自定义字符串格式化器。textwrap模块可用于捕获指定宽度的文本行,并最小化缩排的需求。

1.2 Struct模块

  提供了一些函数,将数字布尔型变量以及字符串打包为字节对象(以其二进制表示),或从字节对象中拆分为适当的类型,用于跟C语言底层的交互。

1.3 difflib模块

  提供了用于对比序列(比如字符串)进行比较的类与方法,并可以产生以标准的“diff”格式与HTML格式输出信息。

1.4 re正则表达式

  最强大的字符串处理模块

2 io.StringIO类

  python提供两种将文本写入到文件的方法,一种是使用open,write方法,一种是print()函数,并将其关键字参数file设置为打开并等待写入的文件对象。比如:

    

print("An error message", file = sys.stdout)
sys.stdout.write("Another error message\n")

  以上两行文本都将被打印输出到sys.stdout中,这是一个文件对象,表示“标准输出流”

  如果使用了sys.stdout = io.StringIO,那么输入到sys.stdout中的文件都将会发送给io.StringIO。可通过io.StringIO.getvalue()函数来获取值。

3 命令行程序设计

  fileinput.input()对控制台中重定向的所有行进行迭代。fileinput.filename()与fileinput.lineno(),该模块可在任意时刻报告当前文件名与行号。

  处理命令行选项模块:optparse和getopt

  

import optparse
def main():
parser = optparse.OptionParser()
parser.add_option("-w","--maxwidth",dest = "maxwidth",type = 'int',help = ("the maximum number of characters that can be""output to string fields[default:%default]"))
parser.add_option("-f","--format",dest = 'format',help = "the format used for outputting numbers""[default:%default]")
parser.set_defaults(maxwidth = 100,format = ".0f")#设置初始值
opts,args = parser.parse_args()

4 数学与数字

  内置:int,float,complex

  数值型标准库:decimal.Decimal,fraction.Fraction

  标准的数学函数:math

  复数数学函数:cmath

  随机数:random

5 时间和日期

  calendar和datetime

6 算法与组合数据类型

  bisect 搜索有序序列

  heapq将序列转换为堆    

import heapq
heap = []
heapq.heappush(heap, (5, "rest"))
heapq.heapify()#将列表转换为堆,可以自动完成必要的重新排序
heapq.heappop()#从堆中移除最小项
heapq.merge()#任意数量的排序后的迭代作为参数返回一个迭代子。

  collection包提供了collectio.defaultdict和collection.named- tuple, collection.UserList, collection.UserDict.Collection.deque(跟list作用相同但是list只在列表结尾添加或删除有很快的速度,collection在开始和结尾都有很快的速度。)

  collection.OrderDict和collection.Counter(提供一个保持各种技术的便捷且快速的方法。以二元组(元素,个数)返回唯一元素或最常见元素的列表。

  array提供了序列类型:array.array(与列表的区别是:对象类型是固定的)

  weakref:弱引用功能。(与通常引用的区别在于如果对某个对象仅有弱引用,那么该对象仍然可以被调度进入垃圾收集,用于防止仅因为对其引用而存在内存里。

7 文件,目录与进程处理

  Shutil模块提供了用于文件与目录处理的高层函数,用于包括复制文件与整个目录的shutil.copy()和shutil.copytree()函数,移动目录树的shutil.move()移动整个目录树的shutil.rmtree()函数

  临时文件的创建应该使用tempfile模块,tempfile.mkstemp()创建临时对象。

  filecmp用于文件的比较filecmp.cmp(),整个目录的比较filecmp.cmpfiles()

  Processing 和MultiProcessing

  os模块:os.environ环境变量名和值。os.getcwd可获取程序工作目录。os.chdir修改工作目录。os.access确定某个文件是否存在或可读写。os.listdir()给定目录中的条目列表os.stat()返回文件与目录的各种信息项(模式,访问时间,大小)os.mkdir()创建目录 os.make-dirs()创建中间目录。os.rmdir()移除空目录os.rename()重命名os.walk()整个目录树上迭代,依次取回每个文件与目录的名称os.path.abspath()返回绝对路径os.path.split()返回二元组,第一项包含路径第二项则是文件名(os.path.basename()与os.path.dirname())文件名也可分为两部分(名称和扩展名)os.splitext()。os.path.join()接受任意数量的路径字符串,并使用特定分隔符返回。

Python标准库概览的更多相关文章

  1. Python - 标准库概况 - 第二十一天

    Python 标准库概览 操作系统接口 os模块提供了不少与操作系统相关联的函数. 建议使用 "import os" 风格而非 "from os import *&quo ...

  2. python系列十七:Python3 标准库概览

    #!/usr/bin/python #-*-coding:gbk-*- #Python3 标准库概览'''操作系统接口os模块提供了不少与操作系统相关联的函数.建议使用 "import os ...

  3. python第六天 函数 python标准库实例大全

    今天学习第一模块的最后一课课程--函数: python的第一个函数: 1 def func1(): 2 print('第一个函数') 3 return 0 4 func1() 1 同时返回多种类型时, ...

  4. python023 Python3 标准库概览

    Python3 标准库概览 操作系统接口 os模块提供了不少与操作系统相关联的函数. >>> import os >>> os.getcwd() # 返回当前的工作 ...

  5. Python标准库14 数据库 (sqlite3)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python自带一个轻量级的关系型数据库SQLite.这一数据库使用SQL语言.S ...

  6. python标准库00 学习准备

    Python标准库----走马观花 python有一套很有用的标准库.标准库会随着python解释器一起安装在你的电脑上的.它是python的一个组成部分.这些标准库是python为你准备的利器,可以 ...

  7. Python标准库:内置函数hasattr(object, name)

    Python标准库:内置函数hasattr(object, name) 本函数是用来判断对象object的属性(name表示)是否存在.如果属性(name表示)存在,则返回True,否则返回False ...

  8. python标准库xml.etree.ElementTree的bug

    使用python生成或者解析xml的方法用的最多的可能就数python标准库xml.etree.ElementTree和lxml了,在某些环境下使用xml.etree.ElementTree更方便一些 ...

  9. 【python】Python标准库defaultdict模块

    来源:http://www.ynpxrz.com/n1031711c2023.aspx Python标准库中collections对集合类型的数据结构进行了很多拓展操作,这些操作在我们使用集合的时候会 ...

随机推荐

  1. 阿里巴巴Java开发规约插件地址

    Git地址: https://github.com/alibaba/p3c eclipse 安装地址: https://p3c.alibaba.com/plugin/eclipse/update

  2. Angular4图片上传预览路径不安全问题

    在Angular4中,通过input:file上传选择图片本地预览的时候,通过window.URL.createObjectURL获取的url赋值给image的src出现错误: WARNING: sa ...

  3. CodeForces-747E

    这几天好懒,昨天写的题,今天才来写博客.... 这题你不知道它究竟有多少层,但是知道字符串长度不超过10^6,那么它的总容量是被限定的,用一个二维动态数组就OK了.输入字符串后,可以把它按照逗号分割成 ...

  4. 中小研发团队架构实践之微服务MSA

    一.MSA简介 1.1.MSA是什么 微服务架构MSA是Microservice Architecture的简称,它是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相通讯.互相配合, ...

  5. 浅谈JavaScript位操作符

    因为ECMAscript中所有数值都是以IEEE-75464格式存储,所以才会诞生了位操作符的概念. 位操作符作用于最基本的层次上,因为数值按位存储,所以位操作符的作用也就是操作数值的位.不过位操作符 ...

  6. Java中equal和==区别及String创建过程

    Java中equal和==区别 1.起因 在一段Java代码中,使用了两种实现方式. //第一种命令行输入 int main (String[] args) { if(args[0] == " ...

  7. Linux下安装MySQL数据库(压缩包方式安装)

    1.这里我将Mysql安装在/usr/local/mysql目录里面,也可以安装在其他地方; mkdir /usr/local/mysql 2.下载MySQL压缩包 wget http://dev.M ...

  8. javascript form表单常用的正则表达式

    form验证时常用的几个正则表达式 座机: \d{3,4}-\d{7,8} 手机号: /^1[34578][0-9]{9}$/ (\86)?\s+1[34578]\d{0-9} (\+86)?\s*1 ...

  9. R语言︱常用统计方法包+机器学习包(名称、简介)

    一.一些函数包大汇总 转载于:http://www.dataguru.cn/thread-116761-1-1.html 时间上有点过期,下面的资料供大家参考基本的R包已经实现了传统多元统计的很多功能 ...

  10. 通过地址获得经纬度(百度Geocoding API)

    1.什么是Geocoding? Geocoding API 是一类简单的HTTP接口,用于提供从地址到经纬度坐标或者从经纬度坐标到地址的转换服务,用户可以使用C# .C++.Java等开发语言发送HT ...