操作系统接口

os模块提供了不少与操作系统相关联的函数。

 import os
 os.getcwd()      # 返回当前的工作目录
 os.chdir('d:/')   # 修改当前的工作目录
 os.system('mkdir today')   # 执行系统命令 mkdir 

针对日常的文件和目录管理任务的shutil 模块

文件通配符

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

import glob
glob.glob('*.py')

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

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

import sys
sys.stderr.write('Warning, log file not found starting a new one\n')

#大多脚本的定向终止都使用 "sys.exit()"。

字符串正则匹配

正则表达式注解:

(1)数量词的贪婪模式与非贪婪模式

正则表达式通常用于在文本中查找匹配的字符串。Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符;非贪婪的则相反,总是尝试匹配尽可能少的字符。例如:正则表达式”ab*”如果用于查找”abbbc”,将找到”abbb”。而如果使用非贪婪的数量词”ab*?”,将找到”a”。

注:我们一般使用非贪婪模式来提取。

(2)反斜杠问题

与大多数编程语言相同,正则表达式里使用”\”作为转义字符,这就可能造成反斜杠困扰。假如你需要匹配文本中的字符”\”,那么使用编程语言表示的正则表达式里将需要4个反斜杠”\\\\”:前两个和后两个分别用于在编程语言里转义成反斜杠,转换成两个反斜杠后再在正则表达式里转义成一个反斜杠。

Python里的原生字符串很好地解决了这个问题,这个例子中的正则表达式可以使用r”\\”表示。同样,匹配一个数字的”\\d”可以写成r”\d”。

re模块为高级字符串处理提供了正则表达式工具,主要方法如下:

#返回pattern对象

re.compile(string[,flag])

#以下为匹配所用函数

re.match(pattern, string[, flags])   尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。
re.search(pattern, string[, flags])  扫描整个字符串并返回第一个成功的匹配。
re.split(pattern, string[, maxsplit])
re.findall(pattern, string[, flags])
re.finditer(pattern, string[, flags])
re.sub(pattern, repl, string[, count])
re.subn(pattern, repl, string[, count])
例如:
#!/usr/bin/python3
import re

line = "Cats are smarter than dogs" #
pattern = re.compile(r'(.*) are (.*?) .*',re.M|re.I)
matchObj = re.match(pattern, line)

if matchObj:
   print ("matchObj.group() : ", matchObj.group())
   print ("matchObj.group(1) : ", matchObj.group(1))
   print ("matchObj.group(2) : ", matchObj.group(2))
else:
   print ("No match!!")

  

数学

math模块为浮点运算提供了对底层C函数库的访问,random提供了生成随机数的工具。

random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0。

random.uniform()的函数原型为:random.uniform(a, b),用于生成一个指定范围内的随机符点数。

random.randint()的函数原型为:random.randint(a, b),用于生成一个指定范围内的整数。

random.randrange()的函数原型为:random.randrange([start], stop[, step]),从指定范围内,按指定基数递增的集合中获取一个随机数。

random.choice从()序列中获取一个随机元素。

random.shuffle()的函数原型为:random.shuffle(x[, random]),用于将一个列表中的元素打乱。

random.sample()的函数原型为:random.sample(sequence, k),从指定序列中随机获取指定长度的片断。sample函数不会修改原有序列。

访问 互联网

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

日期和时间

datetime模块为日期和时间处理同时提供了简单和复杂的方法。

支持日期和时间算法的同时,实现的重点放在更有效的处理和格式化输出。

# dates are easily constructed and formatted
import datetime
from datetime import date
now = date.today()
print(now)
print(datetime.date(2003, 12, 2))
print(now.strftime("%m-%d-%y. %d %b %Y is a %A on the %d day of %B.")) 

数据压缩

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

性能度量

有些用户对了解解决同一问题的不同方法之间的性能差异很感兴趣。Python 提供了一个度量工具timeit。

测试模块

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

doctest模块提供了一个工具,扫描模块并根据程序中内嵌的文档字符串执行测试。

以下是收集常用的库类:

standard libs:

  • itertools http://docs.python.org/2/library/itertools.html
  • functools http://docs.python.org/2/library/functools.html 学好python有必要掌握上面这两个库吧,
  • re 正则
  • subprocess http://docs.python.org/2/library/subprocess.html 调用shell命令的神器
  • pdb 调试
  • traceback 调试
  • pprint 漂亮的输出
  • logging 日志
  • threading和multiprocessing 多线程
  • urllib/urllib2/httplib http库,httplib底层一点,推荐第三方的库requests
  • os/sys 系统,环境相关
  • Queue 队列
  • pickle/cPickle 序列化工具
  • hashlib md5, sha等hash算法
  • cvs
  • json/simplejson python的json库,据so上的讨论和benchmark,simplejson的性能要高于json
  • timeit 计算代码运行的时间等等
  • cProfile python性能测量模块
  • glob 类似与listfile,可以用来查找文件
  • atexit 有一个注册函数,可用于正好在脚本退出运行前执行一些代码
  • dis python 反汇编,当对某条语句不理解原理时,可以用dis.dis 函数来查看代码对应的python 解释器指令等等。

3th libs:

来源:https://www.zhihu.com/question/20501628/answer/19542741

Python入门(六):标准库的更多相关文章

  1. Python OS模块标准库的系统接口及操作方法

    Python OS模块标准库的系统接口及操作方法 os.name 返回当前操作系统名,定义了'posix','nt','mac','os2','ce','java'(我使用win7/python3.1 ...

  2. Python内置模块与标准库

    Python内置模块就是标准库(模块)吗?或者说Python的自带string模块是内置模块吗? 答案是:string不是内置模块,它是标准库.也就是说Python内置模块和标准库并不是同一种东西. ...

  3. Python常用的标准库以及第三方库

    Python常用的标准库以及第三方库有哪些?   20个必不可少的Python库也是基本的第三方库 读者您好.今天我将介绍20个属于我常用工具的Python库,我相信你看完之后也会觉得离不开它们.他们 ...

  4. python学习笔记系列----(八)python常用的标准库

    终于学到了python手册的最后一部分:常用标准库.这部分内容主要就是介绍了一些基础的常用的基础库,可以大概了解下,在以后真正使用的时候也能想起来再拿出来用. 8.1 操作系统接口模块:OS OS模块 ...

  5. 从0开始的Python学习017Python标准库

    简介 Python标准库使随着Python附带安装的,它包含很多有用的模块.所以对一个Python开发者来说,熟悉Python标准库是十分重要的.通过这些库中的模块,可以解决你的大部分问题. sys模 ...

  6. NO.5:自学python之路------标准库,正则表达式

    引言 时间过的好快呀,终于6级也考完了,学习Python的进度也得赶赶了.好的开始这一周的内容. 正文 模块 模块的本质就是‘.py’结尾的文件,它可以用来从逻辑上组织Python代码,它可以是变量. ...

  7. python 常用的标准库及第三方库

    标准库Python拥有一个强大的标准库.Python语言的核心只包含数字.字符串.列表.字典.文件等常见类型和函数,而由Python标准库提供了系统管理.网络通信.文本处理.数据库接口.图形系统.XM ...

  8. Python中级 —— 07标准库

    标准库学习 1. The Python Standard Library[https://docs.python.org/3.5/library/] ( 3.5.5 Documentation ) 1 ...

  9. Python常用的标准库以及第三方库有哪些?

    20个必不可少的Python库也是基本的第三方库 读者您好.今天我将介绍20个属于我常用工具的Python库,我相信你看完之后也会觉得离不开它们.他们是: Requests.Kenneth Reitz ...

  10. Python常用的标准库及第三方库

    标准库Python拥有一个强大的标准库.Python语言的核心只包含数字.字符串.列表.字典.文件等常见类型和函数,而由Python标准库提供了系统管理.网络通信.文本处理.数据库接口.图形系统.XM ...

随机推荐

  1. javascript 自定义Map

      迁移时间:2017年5月25日08:24:19 Author:Marydon 三.自定义Map数据格式 需特别注意的是: js中没有像java中的Map数据格式,js自带的map()方法用于:返回 ...

  2. Arrays.sort()

    今天在做一个按更新时间搜寻出某个目录里面的全部文件,因为自己写算法比較花费时间,干脆就用j2se提供的类Arrays提供的sort()方法,这样就比較省力.对于基本数据类型仅仅要Arrays.sort ...

  3. 自定义基于XML的验证器

    a.编写一个类,继承FieldValidatorSupport类. b.在public void validate(Object object)编写你的验证逻辑 不符合要求的就向fieldErrors ...

  4. 转 理解与分析ios应用的崩溃报告

    理解与分析ios应用的崩溃报告 源网址: http://developer.apple.com/library/ios/#technotes/tn2151/_index.html 当一个应用程序崩溃时 ...

  5. 自制MVC之工具类插件一

    1).BreakRomoteURLAttribute 提交或交互的URL数据是否来源于其它地方,站内提交,防止跨站 2). DataAttribute 取得post或get提交的数据.如果没有特殊设置 ...

  6. CSS/JQuery元素选择器之&amp;&amp;和||,选择器的逻辑操作

    使用CSS或JQuery选中元素的时候.非常多时候我们须要对条件进行&&或者||操作. JQuery或者CSS中的||操作是非经常常使用的.也非常easy,就是通过逗号来分隔的. se ...

  7. web前端规范

    无论是从技术角度还是开发视角,对于web前端开发规范文档都有一定规范,本文就css3和html5的发展前景总结了一系列的web开发文档,仅供大家参考. 规范目的:为提高团队协作效率, 便于后台人员添加 ...

  8. Eclipse+maven开发环境搭建

    版本描述: Eclipse 3.2.2 Maven 2.0.7 Jdk 1.5以上,本例是在jdk1.50版本测试通过 Maven配置过程 Maven官方下载地址:http://www.apache. ...

  9. java之Thread Dump分析

    什么是Thread Dump Thread Dump是非常有用的诊断Java应用问题的工具.每一个Java虚拟机都有及时生成所有线程在某一点状态的thread-dump的能力,虽然各个 Java虚拟机 ...

  10. oracle 创建表空间及oracle 11g表空间之最大最小

    /*分为四步 *//*第1步:创建临时表空间 */create temporary tablespace emaoyi_temp tempfile 'D:\app\Administrator\prod ...