Python相关常用库概念介绍

关于一些常用到的python库,在这里收集整理一下概念,大致熟悉一下,等到遇到的时候,心里就有个底了

time,bson,hashlib ,os,random,Image,ImageEnhance,math,smtplib,email,uuid,urllib,re,syslog,traceback,functools,jinja2,Werkzeug,redis,pymongo,flask

主要是搞清楚两个问题:1.它是什么(What)?2.怎么用(How)?视情况阐述,不具体阐述用法,只尽量简洁清楚的搞清楚大致使用流程,大体的印象即可。

1.time,

(1) 关于时间的相关处理的模块,有time,datetime以及calendar。

(2) 属于工具类模块,具体使用可参阅:http://docs.python.org/2/library/time.htmlhttp://qinxuye.me/article/details-about-time-module-in-python/

2.bson,

(1) BSON(Binary Serialized Document Format)是一种类json的一种二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和数组对象,但是BSON有JSON没有的一些数据类型,如Date和BinData类型。
BSON可以做为网络数据交换的一种存储形式,这个有点类似于Google的Protocol Buffer,但是BSON是一种schema-less的存储形式,它的优点是灵活性高,但它的缺点是空间利用率不是很理想,
BSON有三个特点:轻量性、可遍历性、高效性
(2) {“hello":"world"} 这是一个BSON的例子,其中"hello"是key name,它一般是cstring类型,字节表示是cstring::= (byte*) "/x00" ,其中*表示零个或多个byte字节,/x00表示结束符;后面的"world"是value值,它的类型一般是string,double,array,binarydata等类型。(摘自http://baike.baidu.com/view/3463259.htm

3.hashlib ,

(1)hashlib是个专门提供hash算法的库,现在里面包括md5, sha1, sha224, sha256, sha384, sha512,使用非常简单、方便。
    md5经常用来做用户密码的存储。而sha1则经常用作数字签名。(摘自http://blog.csdn.net/zhaoweikid/article/details/1640516

(2)属于工具类模块

#-*- encoding:utf-8 -*-
import hashlib

a = "a test string"
print hashlib.md5(a).hexdigest()
print hashlib.sha1(a).hexdigest()
print hashlib.sha224(a).hexdigest()
print hashlib.sha256(a).hexdigest()
print hashlib.sha384(a).hexdigest()
print hashlib.sha512(a).hexdigest()

4.os,

(1)Python os模块包含普遍的操作系统功能。如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的。即它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在Linux和Windows下运行。

5.random,

(1)random是用于生成随机数的,我们可以利用它随机生成数字或者选择字符串。(摘自http://my.oschina.net/cuffica/blog/33336)

6.Image,

(1)Python Imaging Library (PIL)

PIL 具備 (但不限於) 以下的能力:

  • 數十種圖檔格式的讀寫能力。常見的 JPEG, PNG, BMP, GIF, TIFF 等格式,都在 PIL 的支援之列。另外,PIL 也支援黑白、灰階、自訂調色盤、RGB true color、帶有透明屬性的 RBG true color、CMYK 及其它數種的影像模式。相當齊全。
  • 基本的影像資料操作:裁切、平移、旋轉、改變尺寸、調置 (transpose)、剪下與貼上等等。
  • 強化圖形:亮度、色調、對比、銳利度。
  • 色彩處理。
  • PIL 提供十數種濾鏡 (filter)。當然,這個數目遠遠不能與 Photoshop® 或 GIMP® 這樣的專業特效處理軟體相比;但 PIL 提供的這些濾鏡可以用在 Python 程式裡面,提供批次化處理的能力。
  • PIL 可以在影像中繪圖製點、線、面、幾何形狀、填滿、文字等等。(摘自http://tech.seety.org/python/python_imaging.html
三大模块:Image,ImageDraw,ImageEnhance

1、Image模块

  最基本的模块,每个Image对象对应了一幅图像

2、ImageDraw模块

  提供基本的图形绘制。可绘制直线、弧线、矩形、多边形、椭圆、扇形等等。

3、ImageEnhance模块

  提供图像增强功能。可以用来进行色彩增强、亮度增强、对比度增强、图像尖锐化等等增强操作。所有操作都有相同形式的接口—— 通过相应类的 enhance 方法实现: 色彩增强通过 Color类的 enhance 方法实现;亮度增强通过 Brightness 类的 enhance 方法实现;对比度增强通过 Contrast 类的 enhance 方法实现;尖锐化通过 Sharpness 类的 enhance 方法实现。 (摘自http://www.haogongju.net/art/1379060

7.ImageEnhance,

见PIL 

8.math,

  math模块实现了许多对浮点数的数学运算函数. 这些函数一般是对平台 C 库中同名函数的简单封装, 所以一般情况下, 不同平台下计算的结果可能稍微地有所不同, 有时候甚至有很大出入  。

  cmath模块包含了一些用于复数运算的函数. cmath模块的函数跟math模块函数基本一致,区别是cmath模块运算的是复数,math模块运算的是数学运算.

9.smtplib,

在基于互联网的应用中,程序经常需要自动地发送电子邮件。如:一个网站的注册系统会在用户注册时发送一封邮件来确认注册;当用户忘记登陆密码的时候,通过邮件来取回密码。smtplib模块是python中smtp(简单邮件传输协议)的客户端实现。我们可以使用smtplib模块,轻松的发送电子邮件。(摘自http://blog.csdn.net/jgood/article/details/4329532

10.email,

发送邮件的模块

11.uuid,

uuid是一种唯一标识,在许多领域作为标识用途。python的uuid模块就是用来生成它的。
闲话不说,python提供的生成uuid的方法一共有4种,分别是:

1.从硬件地址和时间生成
2.从md5算法生成
3.随机生成
4.从SHA-1算法生成

他们在uuid模块里对应uuid1, uuid3, uuid4, uuid5这几个方法,注意没有uuid2。(摘自http://blog.csdn.net/zhaoweikid/article/details/1649786

12.urllib,

urlib和urllib2不可以相互替代,有区别

1.      抓取网页信息

2.  下载远程数据


13.re,

python中的正则表达式模块

14.syslog,

(只用于 Unix 可选) syslog 模块用于向系统日志设备发送信息( syslogd ). 这些信息如何处理依不同的系统而定, 通常会被记录在一个 log 文件中, 例如 /var/log/messages , /var/adm/syslog , 

15.traceback,

traceback模块被用来跟踪异常返回信息

16.functools,


17.jinja2,

Jinja2是基于python的多功能的被广泛使用的模板引擎,功能比较类似于于PHP的smarty,J2ee的Freemarker和velocity。 它支持unicode,并具有集成的沙箱执行环境。(摘自http://baike.baidu.com/view/6749819.htm

18.Werkzeug,

Werkzeug是PythonWSGI规范的实用函数库。使用广泛,基于BSD协议.[1]
Werkzeug就Flask使用的底层WSGI库

19.redis,

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hashs(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。[1]
(摘自http://baike.baidu.com/view/4595959.htm

20.pymongo,

操作mongodb数据库

21.flask

是一个轻量级的Web应用框架, 使用Python编写。基于 WerkzeugWSGI工具箱和 Jinja2模板引擎Flask使用 BSD 授权。


展开阅读全文

没有更多推荐了,返回首页