20個必不可少的Python庫也是基本的第三方庫


20個必不可少的Python庫也是基本的第三方庫


讀者您好。今天我將介紹20個屬於我常用工具的Python庫,我相信你看完之後也會覺得離不開它們。他們是:

Requests.Kenneth Reitz寫的最富盛名的http庫。每個Python程序員都應該有它。

Scrapy.如果你從事爬蟲相關的工作,那麼這個庫也是必不可少的。用過它之後你就不會再想用別的同類庫了。

wxPython.Python的一個GUI(圖形用戶界面)工具。我主要用它替代tkinter。你一定會愛上它的。

Pillow.它是PIL(Python圖形庫)的一個友好分支。對於用戶比PIL更加友好,對於任何在圖形領域工作的人是必備的庫。

SQLAlchemy.一個數據庫的庫。對它的評價褒貶參半。是否使用的決定權在你手裡。

BeautifulSoup.我知道它很慢,但這個xml和html的解析庫對於新手非常有用。

Twisted.對於網絡應用開發者最重要的工具。它有非常優美的api,被很多Python開發大牛使用。

NumPy.我們怎麼能缺少這麼重要的庫?它為Python提供了很多高級的數學方法。

SciPy.既然我們提了NumPy,那就不得不提一下SciPy。這是一個Python的算法和數學工具庫,它的功能把很多科學家從Ruby吸引到了Python。

matplotlib.一個繪製數據圖的庫。對於數據科學家或分析師非常有用。

Pygame.哪個程序員不喜歡玩遊戲和寫遊戲?這個庫會讓你在開發2D遊戲的時候如虎添翼。

Pyglet.3D動畫和遊戲開發引擎。非常有名的Python版本Minecraft就是用這個引擎做的。

pyQT.Python的GUI工具。這是我在給Python腳本開發用戶界面時次於wxPython的選擇。

pyGtk.也是Python GUI庫。很有名的Bittorrent客戶端就是用它做的。

Scapy.用Python寫的數據包探測和分析庫。

pywin32.一個提供和windows交互的方法和類的Python庫。

nltk.自然語言工具包。我知道大多數人不會用它,但它通用性非常高。如果你需要處理字符串的話,它是非常好的庫。但它的功能遠遠不止如此,自己摸索一下吧。

nose.Python的測試框架。被成千上萬的Python程序員使用。如果你做測試導向的開發,那麼它是必不可少的。

SymPy.SymPy可以做代數評測、差異化、擴展、複數等等。它封裝在一個純Python發行版本里。

IPython.怎麼稱讚這個工具的功能都不為過。它把Python的提示信息做到了極致。包括完成信息、歷史信息、shell功能,以及其他很多很多方面。一定要研究一下它。

20個必不可少的Python庫也是基本的第三方庫


Python系統運維常用庫

1、psutil是一個跨平臺庫(http://code.google.com/p/psutil/)

能夠實現獲取系統運行的進程和系統利用率(內存,CPU,磁盤,網絡等),主要用於系統監控,分析和系統資源及進程的管理。

2、IPy(http://github.com/haypo/python-ipy),輔助IP規劃。

3、dnspython(http://dnspython.org)Python實現的一個DNS工具包。

4、difflib:difflib作為Python的標準模塊,無需安裝,作用是對比文本之間的差異。

5、filecmp:系統自帶,可以實現文件,目錄,遍歷子目錄的差異,對比功能。

6、smtplib:發送電子郵件模塊

7、pycurl(http://pycurl.sourceforge.net)是一個用C語言寫的libcurl Python實現,功能強大,支持的協議有:FTP,HTTP,HTTPS,TELNET等,可以理解為Linux下curl命令功能的Python封裝。

8、XlsxWriter:操作Excel工作表的文字,數字,公式,圖表等。

9、rrdtool:用於跟蹤對象的變化,生成這些變化的走走勢圖

10、scapy(http://www.wecdev.org/projects/scapy/)是一個強大的交互式數據包處理程序,它能夠對數據包進行偽造或解包,包括髮送數據包,包嗅探,應答和反饋等功能。

11、Clam Antivirus免費開放源代碼防毒軟件,pyClamad,可以讓Python模塊直接使用ClamAV病毒掃描守護進程calmd。

12、pexpect:可以理解成Linux下expect的Python封裝,通過pexpect我們可以實現對ssh,ftp,passwd,telnet等命令行進行自動交互,而無需人工干涉來達到自動化的目的。

13、paramiko是基於Python實現的SSH2遠程安裝連接,支持認證及密鑰方式。可以實現遠程命令執行,文件傳輸,中間SSH代理等功能。相對於Pexpect,封裝的層次更高,更貼近SSH協議的功能,官網地址:http://paramiko.org(依賴:Crypto,Ecdsa,Python開發包python-devel)

14、fabric是基於Python實現的SSH命令行工具,簡化了SSH的應用程序部署及系統管理任務,它提供了系統基礎的操作組件,可以實現本地或遠程shell命令,包括命令執行,文件上傳,下載及完整執行日誌輸出等功能。Fabric在paramiko的基礎上做了更高一層的封裝,操作起來更加簡單。官網地址:http://www.fabfile.org(依賴setuptools,Crypto,paramiko包支持)

15、CGIHTTPRequestHandler實現對CGI的支持。

16、ansible(http://www.ansibleworks.com/)一種集成IT系統的配置管理,應用部署,執行特定任務的開源平臺。基於Python實現,由Paramiko和PyYAML兩個關鍵模塊構建。Ansibl與Saltstack最大的區別是Ansible無需在被控主機上部署任何客戶端,默認直接通過SSH通道進行遠程命令執行或下發功能。

17、YAML:是一種用來表達數據序列的編程語言。

18、playbook:一個非常簡單的配置管理和多主機部署系統。

19、saltstack(http://saltstack.com)是一個服務器基礎架構集中化管理平臺,一般可以理解為簡化版的puppet和加強版的func。Saltstack基於Python語言實現,結合輕量級消息隊列ZeroMQ,與Python每三方模塊(Pyzmq,PyCrypto,Pyjinja2,python-msgpack和PyYAML等)構建。

20、func,為解決集群管理,監控問題需設計開發的系統管理基礎框架。


20個必不可少的Python庫也是基本的第三方庫


Python 有哪些好的 Web 框架?

standard libs:

itertoolshttp://docs.python.org/2/library/itertools.html

functoolshttp://docs.python.org/2/library/functools.html學好python有必要掌握上面這兩個庫吧,

re 正則

subprocesshttp://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 解釋器指令等等。


分享到:


相關文章: