1. 程式人生 > >Python相關常用庫概念介紹

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.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,使用非常簡單、方便。

(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,

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 程式裡面,提供批次化處理的能力。
三大模組: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演算法生成


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,並具有整合的沙箱

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 授權。