轉(zhuǎn)帖|行業(yè)資訊|編輯:龔雪|2017-02-14 11:01:19.000|閱讀 389 次
概述:不管是原生的,還是第三方,大量的庫是支撐著Python走向成功的重要因素。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
當(dāng)前受歡迎的語言之一Python已正式遷移到源碼托管平臺 GitHub,擁抱了 Git 版本控制系統(tǒng)。作為一門語言,你知道 Python 是如何獲得現(xiàn)在的成功的嗎? 不妨去看看它大量的庫吧,不管是原生的,還是第三方的,可能會有所收獲。有這么多的庫,也就不奇怪為什么有的很多人用,有的卻沒有引起多少人注意。 而且,專注于一個領(lǐng)域的程序員往往并不知道那些看起來是為其他工作類型創(chuàng)建的庫能給他們帶來什么好處。這里有 10個你可能已經(jīng)忽略,但絕對值得你的注意的優(yōu)秀的 Python 庫。 是時候給這些隱藏的寶藏一些關(guān)注了。
1、Pillow
簡介:圖像“無痛”處理庫,易用版的 PIL。
亮點:大多數(shù)執(zhí)行過圖像處理的 Pythonist 應(yīng)該會熟悉 PIL(Python 圖像庫),但 PIL 有不少缺點和限制,并且很少更新。Pillow 的目標(biāo)是比 PIL 更容易使用,并通過最小的變化與 PIL 代碼兼容。 擴(kuò)展包括用于與本機(jī) Windows 的映像功能和 Python Tcl/Tk-backed Tkinter GUI 包。
Pillow 在2017年初發(fā)布了 4.0 版本,增加了許多變化,主要是針對內(nèi)部結(jié)構(gòu),但同時也更新了 Pillow 使用 的 FreeType 和 OpenJpeg 等最新版本的依賴庫。
2、Gooey
簡介: 一條命令,將命令行程序變成一個 GUI 程序。
亮點:Gooey 論證了 argparse 命令行解析庫期望的參數(shù),并把它們作為 GUI 形式呈現(xiàn)給用戶,所有選項都使用適當(dāng)?shù)目丶ɡ缍噙x項參數(shù)的下拉列表等)進(jìn)行標(biāo)記和顯示。 假設(shè)你已經(jīng)在使用 argparse,只需要很少的附加編碼 - 一個單獨的 include 和一個單獨的 decorator ,就能使其工作。
3、Scrapy
簡介:一個快速、高級的屏幕抓取及 web 爬蟲框架。
亮點:Scrapy 保持整個爬取過程簡單。 創(chuàng)建一個類,并定義你要刪除的項目的類型,并編寫一些關(guān)于如何從頁面中提取數(shù)據(jù)的規(guī)則。結(jié)果將以 JSON、XML、CSV 或許多其他的格式導(dǎo)出。收集的數(shù)據(jù)可以保存為 raw,也可以在導(dǎo)入時進(jìn)行清理。 此外,Scrapy 可以擴(kuò)展允許許多其他行為,例如網(wǎng)站登錄處理、會話 cookie 處理。 圖像也可以被 Scrapy 自動提取并與被抓取的內(nèi)容相關(guān)聯(lián)。
4、Pygame
簡介:一個高可移植性的游戲開發(fā)模塊。
亮點:如果你認(rèn)為除了身處游戲開發(fā)世界的,其他人不會想要這樣的框架,那還請再重新思考一下。 Pygame 提供了一個方便的選項來處理許多面向 GUI 的行為:繪制畫布和 sprite 圖形、處理多聲道聲音、處理窗口和點擊事件、 碰撞檢測等等。 不是每個應(yīng)用,或者可以說不是每個 GUI 應(yīng)用,在使用 Pygame 構(gòu)建時都能受益,但仔細(xì)看看它提供了什么,你可能會感到驚訝。
5、Python-docx
簡介:以編程方式創(chuàng)建和操縱 Microsoft Word .docx 文件。
亮點:理論上,編寫用于創(chuàng)建和操縱 XML-style Microsoft Word 文檔的腳本應(yīng)該很容易。 但在實踐中,由于 .docx 格式的內(nèi)部復(fù)雜性,其實還真沒那么簡單。 Python-docx 允許通過提供一種高級的、編程的方式來創(chuàng)建 .docx 文件,從而完成所有的相關(guān)操作。
文本、圖像、樣式和文檔都可以通過庫的 API 添加和更改。 該庫還允許更改現(xiàn)有文檔。不過某些功能仍然不受支持, 例如不能添加或更改標(biāo)題和腳注 - 但 Python-docx 盡最大努力保留了這些東西,即便它們還不能被操縱。
6、PyFilesystem
簡介:一個為所有文件系統(tǒng)提供的通用 Pythonic 接口。
亮點: PyFilesystem 背后的基本理念非常簡單:“以同樣的方式抽象整個文件系統(tǒng)”。它是文件系統(tǒng)的抽象層。實際上,任何包含文件和目錄的東西(硬盤、壓縮文件、FTP服務(wù)器等等)都可以封裝成一個共同的接口,甚至彼此疊加組合。使用這個模塊,你可以不需要知道文件確切的物理位置。
除了使編寫用于操作文件的跨平臺代碼變得更容易外,PyFilesystem 還省去了將來自標(biāo)準(zhǔn)庫(主要是 os 和 io)的不同部分的東西拼湊在一起的步驟。
7、Behold
簡介:一款強(qiáng)大的支持 print-style 的調(diào)試工具。
亮點:對于大多數(shù)語言來說,有一個很簡單的調(diào)試方法:插入 in-line "print" 語句。 Python 也不例外,即使是在大型項目,也有不少人這么做。 但簡單的 print-debugging,很難在大型、多模塊的項目中獲得有用的結(jié)果。
Behold 提供了一個用于通過 print 語句進(jìn)行上下文調(diào)試的工具包。 它允許對輸出施加統(tǒng)一的外觀,對結(jié)果進(jìn)行標(biāo)記,以便可以通過搜索或過濾器對其進(jìn)行排序。并且跨模塊提供上下文,以便可以在另一個模塊中正確調(diào)試來自某個模塊的函數(shù)。Behold 可以處理許多常見的 Python 特定場景,如 printing 對象的內(nèi)部字典、揭露嵌套的屬性、存儲和重用結(jié)果、在調(diào)試過程中的其他點進(jìn)行比較等等。
8、Sh
簡介:一個完備的 subprocess 替代庫,能調(diào)用 subprocess 中的任意外部程序,并將結(jié)果返回到 Python 應(yīng)用。
亮點:在任何兼容 Posix 的系統(tǒng)上,Sh 都是一個神器。 這意味著在這些平臺上可用的所有命令行程序都可以使用 Python。 你不僅不再需要重新造輪子,還不用再為如何優(yōu)雅地添加該功能到你的應(yīng)用上而努力。 值得注意的是:該庫對于通過此庫傳遞的參數(shù)沒有清理界限,請確保不要將原始用戶輸入傳遞。
9、NumPy
簡介:科學(xué)計算和數(shù)學(xué)工作基礎(chǔ)包,包括統(tǒng)計學(xué)、線性代數(shù)、矩陣數(shù)學(xué)、金融操作等等。
亮點:Quant 和 bean 計數(shù)器已經(jīng)了解 NumPy 并且喜歡它,但 NumPy 的數(shù)學(xué) 'n' 統(tǒng)計的應(yīng)用范圍比你想象的更廣。 例如,它是向多維數(shù)組添加對 Python 支持的最簡單、最靈活的方法之一。 NumPy 提供了許多高級的數(shù)值編程工具,如:矩陣數(shù)據(jù)類型、矢量處理,以及精密的運算庫,專為進(jìn)行嚴(yán)格的數(shù)字處理而產(chǎn)生,和稀疏矩陣運算包 Scipy 配合使用更加方便。
10、Apache Libcloud
簡介:一個為各種云設(shè)計的 Python 庫,通過單一、一致和統(tǒng)一的 API 訪問各個云提供商。
亮點:如果上面關(guān)于 Apache Libcloud 的描述沒有讓你有摩拳擦掌想去體驗的沖動,沒關(guān)系。 云提供商都喜歡以他們自己的方式做事情 - 有時巧妙,有時不是 - 所以有一個統(tǒng)一的機(jī)制來處理幾十個提供商和相關(guān)的方法來操縱他們的資源是一個福音。 API 可用于計算、存儲、負(fù)載平衡和 DNS,支持 2.x 和 3.x 的 Python 風(fēng)格。 對于那些為了額外的性能使用 Python 的 PyPy 版本的,也能被很好地支持。
原文:
編譯:開源中國 王練
更多行業(yè)資訊,更新鮮的技術(shù)動態(tài),盡在。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn