今天我們來介紹20個(gè)常用工具的Python庫,相信看完之后也會(huì)覺得離不開它們。他們是:
Requests.Kenneth Reitz寫的最富盛名的http庫。每個(gè)Python程序員都應(yīng)該有它。
Scrapy.如果你從事爬蟲相關(guān)的工作,那么這個(gè)庫也是必不可少的。用過它之后你就不會(huì)再想用別的同類庫了。
wxPython.Python的一個(gè)GUI(圖形用戶界面)工具。我主要用它替代tkinter。你一定會(huì)愛上它的。
Pillow.它是PIL(Python圖形庫)的一個(gè)友好分支。對于用戶比PIL更加友好,對于任何在圖形領(lǐng)域工作的人是必備的庫。
SQLAlchemy.一個(gè)數(shù)據(jù)庫的庫。對它的評價(jià)褒貶參半。是否使用的決定權(quán)在你手里。
BeautifulSoup.我知道它很慢,但這個(gè)xml和html的解析庫對于新手非常有用。
Twisted.對于網(wǎng)絡(luò)應(yīng)用開發(fā)者最重要的工具。它有非常優(yōu)美的api,被很多Python開發(fā)大牛使用。
NumPy.我們怎么能缺少這么重要的庫?它為Python提供了很多高級的數(shù)學(xué)方法。
SciPy.既然我們提了NumPy,那就不得不提一下SciPy。這是一個(gè)Python的算法和數(shù)學(xué)工具庫,它的功能把很多科學(xué)家從Ruby吸引到了Python。
matplotlib.一個(gè)繪制數(shù)據(jù)圖的庫。對于數(shù)據(jù)科學(xué)家或分析師非常有用。
Pygame.哪個(gè)程序員不喜歡玩游戲和寫游戲?這個(gè)庫會(huì)讓你在開發(fā)2D游戲的時(shí)候如虎添翼。
Pyglet.3D動(dòng)畫和游戲開發(fā)引擎。非常有名的Python版本Minecraft就是用這個(gè)引擎做的。
pyQT.Python的GUI工具。這是我在給Python腳本開發(fā)用戶界面時(shí)次于wxPython的選擇。
pyGtk.也是Python GUI庫。很有名的Bittorrent客戶端就是用它做的。
Scapy.用Python寫的數(shù)據(jù)包探測和分析庫。
pywin32.一個(gè)提供和windows交互的方法和類的Python庫。
nltk.自然語言工具包。我知道大多數(shù)人不會(huì)用它,但它通用性非常高。如果你需要處理字符串的話,它是非常好的庫。但它的功能遠(yuǎn)遠(yuǎn)不止如此,自己摸索一下吧。
nose.Python的測試框架。被成千上萬的Python程序員使用。如果你做測試導(dǎo)向的開發(fā),那么它是必不可少的。
SymPy.SymPy可以做代數(shù)評測、差異化、擴(kuò)展、復(fù)數(shù)等等。它封裝在一個(gè)純Python發(fā)行版本里。
IPython.怎么稱贊這個(gè)工具的功能都不為過。它把Python的提示信息做到了極致。包括完成信息、歷史信息、shell功能,以及其他很多很多方面。一定要研究一下它。
Python系統(tǒng)運(yùn)維常用庫
1、psutil是一個(gè)跨平臺(tái)庫(http://code.google.com/p/psutil/)
能夠?qū)崿F(xiàn)獲取系統(tǒng)運(yùn)行的進(jìn)程和系統(tǒng)利用率(內(nèi)存,CPU,磁盤,網(wǎng)絡(luò)等),主要用于系統(tǒng)監(jiān)控,分析和系統(tǒng)資源及進(jìn)程的管理。
2、IPy(http://github.com/haypo/python-ipy),輔助IP規(guī)劃。
3、dnspython(http://dnspython.org)Python實(shí)現(xiàn)的一個(gè)DNS工具包。
4、difflib:difflib作為Python的標(biāo)準(zhǔn)模塊,無需安裝,作用是對比文本之間的差異。
5、filecmp:系統(tǒng)自帶,可以實(shí)現(xiàn)文件,目錄,遍歷子目錄的差異,對比功能。
6、smtplib:發(fā)送電子郵件模塊
7、pycurl(http://pycurl.sourceforge.net)是一個(gè)用C語言寫的libcurl Python實(shí)現(xiàn),功能強(qiáng)大,支持的協(xié)議有:FTP,HTTP,HTTPS,TELNET等,可以理解為Linux下curl命令功能的Python封裝。
8、XlsxWriter:操作Excel工作表的文字,數(shù)字,公式,圖表等。
9、rrdtool:用于跟蹤對象的變化,生成這些變化的走走勢圖
10、scapy(http://www.wecdev.org/projects/scapy/)是一個(gè)強(qiáng)大的交互式數(shù)據(jù)包處理程序,它能夠?qū)?shù)據(jù)包進(jìn)行偽造或解包,包括發(fā)送數(shù)據(jù)包,包嗅探,應(yīng)答和反饋等功能。
11、Clam Antivirus免費(fèi)開放源代碼防毒軟件,pyClamad,可以讓Python模塊直接使用ClamAV病毒掃描守護(hù)進(jìn)程calmd。
12、pexpect:可以理解成Linux下expect的Python封裝,通過pexpect我們可以實(shí)現(xiàn)對ssh,ftp,passwd,telnet等命令行進(jìn)行自動(dòng)交互,而無需人工干涉來達(dá)到自動(dòng)化的目的。
13、paramiko是基于Python實(shí)現(xiàn)的SSH2遠(yuǎn)程安裝連接,支持認(rèn)證及密鑰方式。可以實(shí)現(xiàn)遠(yuǎn)程命令執(zhí)行,文件傳輸,中間SSH代理等功能。相對于Pexpect,封裝的層次更高,更貼近SSH協(xié)議的功能,官網(wǎng)地址:http://paramiko.org(依賴:Crypto,Ecdsa,Python開發(fā)包python-devel)
14、fabric是基于Python實(shí)現(xiàn)的SSH命令行工具,簡化了SSH的應(yīng)用程序部署及系統(tǒng)管理任務(wù),它提供了系統(tǒng)基礎(chǔ)的操作組件,可以實(shí)現(xiàn)本地或遠(yuǎn)程shell命令,包括命令執(zhí)行,文件上傳,下載及完整執(zhí)行日志輸出等功能。Fabric在paramiko的基礎(chǔ)上做了更高一層的封裝,操作起來更加簡單。官網(wǎng)地址:http://www.fabfile.org(依賴setuptools,Crypto,paramiko包支持)
15、CGIHTTPRequestHandler實(shí)現(xiàn)對CGI的支持。
16、ansible(http://www.ansibleworks.com/)一種集成IT系統(tǒng)的配置管理,應(yīng)用部署,執(zhí)行特定任務(wù)的開源平臺(tái)?;赑ython實(shí)現(xiàn),由Paramiko和PyYAML兩個(gè)關(guān)鍵模塊構(gòu)建。Ansibl與Saltstack最大的區(qū)別是Ansible無需在被控主機(jī)上部署任何客戶端,默認(rèn)直接通過SSH通道進(jìn)行遠(yuǎn)程命令執(zhí)行或下發(fā)功能。
17、YAML:是一種用來表達(dá)數(shù)據(jù)序列的編程語言。
18、playbook:一個(gè)非常簡單的配置管理和多主機(jī)部署系統(tǒng)。
19、saltstack(http://saltstack.com)是一個(gè)服務(wù)器基礎(chǔ)架構(gòu)集中化管理平臺(tái),一般可以理解為簡化版的puppet和加強(qiáng)版的func。Saltstack基于Python語言實(shí)現(xiàn),結(jié)合輕量級消息隊(duì)列ZeroMQ,與Python每三方模塊(Pyzmq,PyCrypto,Pyjinja2,python-msgpack和PyYAML等)構(gòu)建。
20、func,為解決集群管理,監(jiān)控問題需設(shè)計(jì)開發(fā)的系統(tǒng)管理基礎(chǔ)框架。
Python 有哪些好的 Web 框架?
standard libs:
itertoolshttp://docs.python.org/2/library/itertools.html
functoolshttp://docs.python.org/2/library/functools.html學(xué)好python有必要掌握上面這兩個(gè)庫吧,
re 正則
subprocesshttp://docs.python.org/2/library/subprocess.html調(diào)用shell命令的神器
pdb 調(diào)試
traceback 調(diào)試
pprint 漂亮的輸出
logging 日志
threading和multiprocessing 多線程
urllib/urllib2/httplib http庫,httplib底層一點(diǎn),推薦第三方的庫requests
os/sys 系統(tǒng),環(huán)境相關(guān)
Queue 隊(duì)列
pickle/cPickle 序列化工具
hashlib md5, sha等hash算法
cvs
json/simplejson python的json庫,據(jù)so上的討論和benchmark,simplejson的性能要高于json
timeit 計(jì)算代碼運(yùn)行的時(shí)間等等
cProfile python性能測量模塊
glob 類似與listfile,可以用來查找文件
atexit 有一個(gè)注冊函數(shù),可用于正好在腳本退出運(yùn)行前執(zhí)行一些代碼
dis python 反匯編,當(dāng)對某條語句不理解原理時(shí),可以用dis.dis 函數(shù)來查看代碼對應(yīng)的python 解釋器指令等等。
(責(zé)任編輯:代碼如詩) |