Python入门(六):标准库
操作系统接口
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])
#以下为匹配所用函数
#!/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模块提供了一个工具,扫描模块并根据程序中内嵌的文档字符串执行测试。
以下是收集常用的库类:
- 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:
- paramiko https://github.com/paramiko/paramiko ssh python 库
- selenium https://pypi.python.org/pypi/selenium 浏览器自动化测试工具selenium的python 接口
- lxml http://lxml.de/ python 解析html,xml 的神器
- mechanize https://pypi.python.org/pypi/mechanize/ Stateful programmatic web browsing
- pycurl https://pypi.python.org/pypi/pycurl cURL library module for Python
- Fabric http://docs.fabfile.org/en/1.8/ Fabric is a Python (2.5 or higher) library and command-line tool for streamlining the use of SSH for application deployment or systems administration tasks.
- xmltodict https://github.com/martinblech/xmltodict xml 转 dict,真心好用
- urllib3 和 requests: 当然其实requests就够了 Requests: HTTP for Humans
- flask http://flask.pocoo.org/python web 微框架
- ipdb 调试神器,同时推荐ipython!结合ipython使用
- redis redis python接口
- pymongo mongodbpython接口
- PIL http://www.pythonware.com/products/pil/ python图像处理
- mako http://www.makotemplates.org/ python模版引擎
- numpy , scipy 科学计算
- matplotlib 画图
- scrapy 爬虫
- django/tornado/web.py/web2py/uliweb/flask/twisted/bottle/cherrypy.等等 python web框架/服务器
- sh 1.08 — sh v1.08 documentation 用来运行shell 模块的 极佳选择
来源:https://www.zhihu.com/question/20501628/answer/19542741
Python入门(六):标准库的更多相关文章
- Python OS模块标准库的系统接口及操作方法
Python OS模块标准库的系统接口及操作方法 os.name 返回当前操作系统名,定义了'posix','nt','mac','os2','ce','java'(我使用win7/python3.1 ...
- Python内置模块与标准库
Python内置模块就是标准库(模块)吗?或者说Python的自带string模块是内置模块吗? 答案是:string不是内置模块,它是标准库.也就是说Python内置模块和标准库并不是同一种东西. ...
- Python常用的标准库以及第三方库
Python常用的标准库以及第三方库有哪些? 20个必不可少的Python库也是基本的第三方库 读者您好.今天我将介绍20个属于我常用工具的Python库,我相信你看完之后也会觉得离不开它们.他们 ...
- python学习笔记系列----(八)python常用的标准库
终于学到了python手册的最后一部分:常用标准库.这部分内容主要就是介绍了一些基础的常用的基础库,可以大概了解下,在以后真正使用的时候也能想起来再拿出来用. 8.1 操作系统接口模块:OS OS模块 ...
- 从0开始的Python学习017Python标准库
简介 Python标准库使随着Python附带安装的,它包含很多有用的模块.所以对一个Python开发者来说,熟悉Python标准库是十分重要的.通过这些库中的模块,可以解决你的大部分问题. sys模 ...
- NO.5:自学python之路------标准库,正则表达式
引言 时间过的好快呀,终于6级也考完了,学习Python的进度也得赶赶了.好的开始这一周的内容. 正文 模块 模块的本质就是‘.py’结尾的文件,它可以用来从逻辑上组织Python代码,它可以是变量. ...
- python 常用的标准库及第三方库
标准库Python拥有一个强大的标准库.Python语言的核心只包含数字.字符串.列表.字典.文件等常见类型和函数,而由Python标准库提供了系统管理.网络通信.文本处理.数据库接口.图形系统.XM ...
- Python中级 —— 07标准库
标准库学习 1. The Python Standard Library[https://docs.python.org/3.5/library/] ( 3.5.5 Documentation ) 1 ...
- Python常用的标准库以及第三方库有哪些?
20个必不可少的Python库也是基本的第三方库 读者您好.今天我将介绍20个属于我常用工具的Python库,我相信你看完之后也会觉得离不开它们.他们是: Requests.Kenneth Reitz ...
- Python常用的标准库及第三方库
标准库Python拥有一个强大的标准库.Python语言的核心只包含数字.字符串.列表.字典.文件等常见类型和函数,而由Python标准库提供了系统管理.网络通信.文本处理.数据库接口.图形系统.XM ...
随机推荐
- Odoo环境下Ubuntu服务器性能优化--参数调整
公司在使用Odoo进行内部信息化管理,随着业务增长,服务器性能问题变成了瓶颈,为了解决这些问题,最近的工作重点将移到性能调整上来,同时也会在此记录整个处理过程,以便日后回顾. 1.根据相关资料建议,在 ...
- TimesTen 应用层数据库缓存学习:4. 仅仅读缓存
在运行本文样例前.首先先运行TimesTen 应用层数据库缓存学习:2. 环境准备中的操作. Read-only Cache Group的概念 仅仅读缓存组例如以下图: 仅仅读缓存组(Read-Onl ...
- SCRUM敏捷开发规则一栏
敏捷.敏捷开发这类词近期非常火!敏捷开发,就是指可以在需求迅速变化的情况下高速开发软件.我们接触最多的和敏捷相关的名词是:极限编程(XP).结对编程.測试驱动开发(TDD)等. 敏捷建模(Agile ...
- Could not create and/or set value back on to object .
严重: Error building beanorg.springframework.beans.factory.UnsatisfiedDependencyException: Error creat ...
- 使用jq Deferred防止代码被回调函数分解分解的支离破碎
//移动人物 function moveInterval(stopPosotion){ var dtd = $.Deferred(); // 生成Deferred对象 var yidong= wind ...
- MAC 通过brew安装软件
1.安装brew ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/instal ...
- 解决异常断电导致的: CorruptSSTableException: java.io.EOFException
问题产生 服务器重启,导致cassandra损坏,整个集群不可用.所使用的cassandra为2.1.9版本. 问题描述 运行启动命令,报错如下: DEBUG :: All segments have ...
- Daemon,Jos,定时器
--> FileSystemWatcher--> EventWaitHandle / AutoResetEvent / ManualResetEvent--> Mutex--> ...
- setTime
var getTime = function() { var _ = ['00', '01', '02', '03', '04', '05', '06', '07', '08', '09'], //补 ...
- [docker]docker压力测试
内存测试 -m --memory-swap 内存+swap docker run -it --rm -m 200M --memory-swap=300M progrium/stress --vm 1 ...