8 個(gè)用于業(yè)余項(xiàng)目的優(yōu)秀 Python 庫(kù)
這些庫(kù)可以使你更容易構(gòu)架個(gè)人項(xiàng)目。
在 Python/Django 的世界里有這樣一個(gè)諺語(yǔ):為語(yǔ)言而來,為社區(qū)而留。對(duì)絕大多數(shù)人來說的確是這樣的,但是,還有一件事情使得我們一直停留在 Python 的世界里,不愿離開,那就是我們可以很容易地利用一頓午餐或晚上幾個(gè)小時(shí)的時(shí)間,把一個(gè)想法快速地實(shí)現(xiàn)出來。
這個(gè)月,我們來探討一些我們喜歡用來快速完成 業(yè)余項(xiàng)目(side projects)或打發(fā)午餐時(shí)間的 Python 庫(kù)。
在數(shù)據(jù)庫(kù)中即時(shí)保存數(shù)據(jù):Dataset
當(dāng)我們想要在不知道最終數(shù)據(jù)庫(kù)表長(zhǎng)什么樣的情況下,快速收集數(shù)據(jù)并保存到數(shù)據(jù)庫(kù)中的時(shí)候, Dataset 庫(kù)將是我們的***選擇。Dataset 庫(kù)有一個(gè)簡(jiǎn)單但功能強(qiáng)大的 API,因此我們可以很容易的把數(shù)據(jù)保存下來,之后再進(jìn)行整理。
Dataset 建立在 SQLAlchemy 之上,所以如果需要對(duì)它進(jìn)行擴(kuò)展,你會(huì)感到非常熟悉。使用 Django 內(nèi)建的 inspectdb 管理命令可以很容易地把底層數(shù)據(jù)庫(kù)模型導(dǎo)入 Django 中,這使得和現(xiàn)有數(shù)據(jù)庫(kù)一同工作不會(huì)出現(xiàn)任何障礙。
從網(wǎng)頁(yè)抓取數(shù)據(jù):Beautiful Soup
Beautiful Soup (一般寫作 BS4)庫(kù)使得從 HTML 網(wǎng)頁(yè)中提取信息變得非常簡(jiǎn)單。當(dāng)我們需要把非結(jié)構(gòu)化或弱結(jié)構(gòu)化的 HTML 轉(zhuǎn)換為結(jié)構(gòu)化數(shù)據(jù)的時(shí)候,就需要使用 Beautiful Soup 。用它來處理 XML 數(shù)據(jù)也是一個(gè)很好的選擇,否則 XML 的可讀性或許會(huì)很差。
和 HTTP 內(nèi)容打交道:Requests
當(dāng)需要和 HTTP 內(nèi)容打交道的時(shí)候, Requests 毫無疑問是***的標(biāo)準(zhǔn)庫(kù)。當(dāng)我們想要抓取 HTML 網(wǎng)頁(yè)或連接 API 的時(shí)候,都離不開 Requests 庫(kù)。同時(shí),它也有很好的文檔。
編寫命令行工具:Click
當(dāng)需要寫一個(gè)簡(jiǎn)單的 Python 腳本作為命令行工具的時(shí)候, Click 是我最喜歡用的庫(kù)。它的 API 非常直觀,并且在實(shí)現(xiàn)時(shí)經(jīng)過了深思熟慮,我們只需要記住很少的幾個(gè)模式。它的文檔也很優(yōu)秀,這使得學(xué)習(xí)其高級(jí)特性更加容易。
對(duì)事物命名:Python Slugify
眾所周知,命名是一件困難的事情。 Python Slugify 是一個(gè)非常有用的庫(kù),它可以把一個(gè)標(biāo)題或描述轉(zhuǎn)成一個(gè)帶有特性的唯一標(biāo)識(shí)符。如果你正在做一個(gè) Web 項(xiàng)目,并且你想要使用對(duì) 搜索引擎優(yōu)化友好(SEO-friendly)的鏈接,那么,使用 Python Slugify 可以讓這件事變得很容易。
和插件打交道:Pluggy
Pluggy 庫(kù)相對(duì)較新,但是如果你想添加一個(gè)插件系統(tǒng)到現(xiàn)有應(yīng)用中,那么使用 Pluggy 是***也是最簡(jiǎn)單的方式。如果你使用過 pytest,那么實(shí)際上相當(dāng)于已經(jīng)使用過 Pluggy 了,雖然你還不知道它。
把 CSV 文件轉(zhuǎn)換到 API 中:DataSette
DataSette 是一個(gè)神奇的工具,它可以很容易地把 CSV 文件轉(zhuǎn)換為全特性的只讀 REST JSON API,同時(shí),不要把它和 Dataset 庫(kù)混淆。Datasette 有許多特性,包括創(chuàng)建圖表和 geo(用于創(chuàng)建交互式地圖),并且很容易通過容器或第三方網(wǎng)絡(luò)主機(jī)進(jìn)行部署。
處理環(huán)境變量等:Envparse
如果你不想在源代碼中保存 API 密鑰、數(shù)據(jù)庫(kù)憑證或其他敏感信息,那么你便需要解析環(huán)境變量,這時(shí)候 envparse 是***的選擇。Envparse 能夠處理環(huán)境變量、ENV 文件、變量類型,甚至還可以進(jìn)行預(yù)處理和后處理(例如,你想要確保變量名總是大寫或小寫的)。
有什么你最喜歡的用于業(yè)余項(xiàng)目的 Python 庫(kù)不在這個(gè)列表中嗎?請(qǐng)?jiān)谠u(píng)論中和我們分享。
編譯自: https://opensource.com/article/18/9/python-libraries-side-projects 作者: Jeff Triplett