Python标准库——蜻蜓点水

Vamei博客地址:http://www.cnblogs.com/vamei/archive/2012/07/18/2597212.htmlphp

做者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!html

 

Python有一套颇有用的标准库(standard library)。标准库会随着Python解释器,一块儿安装在你的电脑中的。它是Python的一个组成部分。这些标准库是Python为你准备好的利器,可让编程事半功倍。正则表达式

 

我将根据我我的的使用经验中,挑选出标准库三个方面的包(package)介绍:sql

  • Python加强
  • 系统互动
  • 网络

 

第一类:Python加强

Python自身的已有的一些功能能够随着标准库的使用而获得加强。数据库

 

1) 文字处理express

Python的string类提供了对字符串进行处理的方法。更进一步,经过标准库中的re包,Python能够用正则表达式(regular expression)来处理字符串。编程

正则表达式是一个字符串模板。Python能够从字符中搜查符合该模板的部分,或者对这一部分替换成其它内容。好比你能够搜索一个文本中全部的数字。正则表达式的关键在于根据本身的须要构成模板。数组

此外,Python标准库还为字符串的输出提供更加丰富的格式, 好比: string包,textwrap包。bash

 

2) 数据对象服务器

不一样的数据对象,适用于不一样场合对数据的组织和管理。Python的标准库定义了表和词典以外的数据对象,好比说数组(array),队列(Queue)。一个熟悉数据结构(data structure)的Python用户能够在这些包中找到本身须要的数据结构。

此外,咱们也会常用copy包,以复制对象

 

3) 日期和时间

日期和时间的管理并不复杂,但容易犯错。Python的标准库中对日期和时间的管理颇为完善(利用time包管理时间,利用datetime包管理日期和时间),你不只能够进行日期时间的查询和变换(好比:2012年7月18日对应的是星期几),还能够对日期时间进行运算(好比2000.1.1 13:00的378小时以后是什么日期,什么时间)。经过这些标准库,还能够根据须要控制日期时间输出的文本格式(好比:输出’2012-7-18‘仍是'18 Jul 2012')

 

4) 数学运算

标准库中,Python定义了一些新的数字类型(decimal包, fractions包), 以弥补以前的数字类型(integer, float)可能的不足。标准库还包含了random包,用于处理随机数相关的功能(产生随机数,随机取样等)。math包补充了一些重要的数学常数和数学函数,好比pi,三角函数等等。

(尽管numpy并非标准库中的包,但它的数组运算的良好支持,让它在基于Python的科研和计算方面获得至关普遍的应用,能够适当关注。)

 

5) 存储

以前咱们的快速教程中,只说起了文本的输入和输出。实际上,Python能够输入或输出任意的对象。这些对象能够经过标准库中的pickle包转换成为二进制格式(binary),而后存储于文件之中,也能够反向从二进制文件中读取对象。

此外,标准库中还支持基本的数据库功能(sqlite3包)。XML和csv格式的文件也有相应的处理包。

  

第二类:系统互动

系统互动,主要指Python和操做系统(operate system)、文件系统(file system)的互动。Python能够实现一个操做系统的许多功能。它可以像bash脚本那样管理操做系统,这也是Python有时被成为脚本语言的缘由。

 

1) Python运行控制

sys包被用于管理Python自身的运行环境。Python是一个解释器(interpreter), 也是一个运行在操做系统上的程序。咱们能够用sys包来控制这一程序运行的许多参数,好比说Python运行所能占据的内存和CPU, Python所要扫描的路径等。另外一个重要功能是和Python本身的命令行互动,从命令行读取命令和参数。

 

2) 操做系统

若是说Python构成了一个小的世界,那么操做系统就是包围这个小世界的大世界。Python与操做系统的互动可让Python在本身的小世界里管理整个大世界。

os包是Python与操做系统的接口。咱们能够用os包来实现操做系统的许多功能,好比管理系统进程,改变当前路径(至关于’cd‘),改变文件权限等,创建。但要注意,os包是创建在操做系统的平台上的,许多功能在Windows系统上是没法实现的。另外,在使用os包中,要注意其中的有些功能已经被其余的包取代。

咱们经过文件系统来管理磁盘上储存的文件。查找、删除,复制文件,以及列出文件列表等都是常见的文件操做。这些功能常常能够在操做系统中看到(好比ls, mv, cp等Linux命令),但如今能够经过Python标准库中的glob包、shutil包、os.path包、以及os包的一些函数等,在Python内部实现。

subprocess包被用于执行外部命令,其功能至关于咱们在操做系统的命令行中输入命令以执行,好比常见的系统命令'ls'或者'cd',还能够是任意能够在命令行中执行的程序。

 

4) 线程与进程

Python支持多线程(threading包)运行和多进程(multiprocessing包)运行。经过多线程和多进程,能够提升系统资源的利用率,提升计算机的处理速度。Python在这些包中,附带有相关的通讯和内存管理工具。此外,Python还支持相似于UNIX的signal系统,以实现进程之间的粗糙的信号通讯。

 

第三类:网络

如今,网络功能的强弱很大程度上决定了一个语言的成功与否。从Ruby, JavaScript, php身上均可以感觉到这一点。Python的标准库对互联网开发的支持并不充分,这也是Django等基于Python的项目的出发点: 加强Python在网络方面的应用功能。这些项目取得了很大的成功,也是许多人愿意来学习Python的一大缘由。但应注意到,这些基于Python的项目也是创建在Python标准库的基础上的。

 

1) 基于socket层的网络应用

socket是网络可编程部分的底层。经过socket包,咱们能够直接管理socket,好比说将socket赋予给某个端口(port),链接远程端口,以及经过链接传输数据。咱们也能够利用SocketServer包更方便地创建服务器。

经过与多线程和多进程配合,创建多线程或者多进程的服务器,能够有效提升服务器的工做能力。此外,经过asyncore包实现异步处理,也是改善服务器性能的一个方案。

 

2) 互联网应用

在实际应用中,网络的不少底层细节(好比socket)都是被高层的协议隐藏起来的。创建在socket之上的http协议实际上更容易也更常常被使用。http经过request/responce的模式创建链接并进行通讯,其信息内容也更容易理解。Python标准库中有http的服务器端和客户端的应用支持(BaseHTTPServer包; urllib包, urllib2包), 而且能够经过urlparse包对URL(URL实际上说明了网络资源所在的位置)进行理解和操做。

 

以上的介绍比较粗糙,只但愿能为你们提供一个了解标准库的入口。欢迎你们一块儿分享标准库的使用经验。

相关文章
相关标签/搜索