錯過這15個頂級Python庫,你就不算Python程式設計師

2020-08-11 17:36:43

爲什麼我喜歡Python?對於初學者來說,這是一種簡單易學的程式語言,另一個原因:大量開箱即用的三方庫,正是23萬個由使用者提供的軟體包使得Python真正強大和流行。

在本文中,我挑選了15個最有用的軟體包,介紹它們的功能和特點。

1. Dash

Dash是比較新的軟體包,它是用純Python構建數據視覺化app的理想選擇,因此特別適合處理數據的任何人。Dash是Flask,Plotly.js和React.js的混合體。

在这里插入图片描述

2. Pygame

Pygame是SDL多媒體庫的Python裝飾器,SDL(Simple DirectMedia Layer)是一個跨平臺開發庫,旨在提供對以下內容的低階介面:

  • 音訊
  • 鍵盤
  • 滑鼠
  • 遊戲桿
  • 基於OpenGL和Direct3D的圖形硬體

Pygame具有高度的可移植性,幾乎可以在所有平臺和操作系統上執行。儘管它具有完善的遊戲引擎,但您也可以使用此庫直接從Python指令碼播放MP3檔案。

3. Pillow

Pillow專門用於處理影象,您可以使用該庫建立縮圖,在檔案格式之間轉換,旋轉,應用濾鏡,顯示影象等等。如果您需要對許多影象執行批次操作,這是理想的選擇。

爲了快速瞭解它,看以下程式碼範例(載入並渲染圖片):

在这里插入图片描述

4. Colorama

Colorama允許你在終端使用顏色,非常適合Python指令碼,文件簡短而有趣,可以在Colorama PyPI頁面上找到。

在这里插入图片描述

5. JmesPath

在Python中使用JSON非常容易,因爲JSON在Python字典上的對映非常好。 此外,Python帶有自己出色的json庫,用於解析和建立JSON。對我來說,這是它最好的功能之一。如果我需要使用JSON,可以考慮使用Python。

JMESPath使Python處理JSON更加容易,它允許您明確的地指定如何從JSON文件中提取元素。以下是一些基本範例,可讓您對它的功能有所瞭解:

在这里插入图片描述

6. Requests

Requests建立在世界上下載量最大的Python庫urllib3上,它令Web請求變得非常簡單,功能強大且用途廣泛。

以下程式碼範例說明requests的使用是多麼簡單。

在这里插入图片描述

Requests可以完成您能想到的所有高階工作,例如:

  • 認證
  • 使用cookie
  • 執行POST,PUT,DELETE等
  • 使用自定義證書
  • 使用對談Session
  • 使用代理

7. Simplejson

Python中的本地json模組有什麼問題? 沒有! 實際上,Python的json是simplejson。 意思是,Python採用了simplejson的一個版本,並將其合併到每個發行版中。 但是使用simplejson具有一些優點:

  • 它適用於更多Python版本。
  • 它比Python隨附的版本更新頻率更高。
  • 它具有用C編寫的(可選)部分,因此非常快速。

由於這些事實,您經常會在使用JSON的指令碼中看到以下內容:

在这里插入图片描述

我將只使用預設的json,除非您特別需要:

  • 速度
  • 標準庫中沒有的東西

Simplejson比json快很多,因爲它用C實現一些關鍵部分。除非您正在處理數百萬個JSON檔案,否則您不會對這種速度感興趣。

8. Emoji

Emoji庫非常有意思,但並非每個人都喜歡錶情包,分析視角媒體數據時,Emoji包非常有用。

在这里插入图片描述

以下是簡單的程式碼範例:

在这里插入图片描述

9. Chardet

您可以使用chardet模組來檢測檔案或數據流的字元集。例如,這在分析大量隨機文字時很有用。但是,當您不知道字元集是什麼時,也可以在處理遠端下載的數據時使用它。

10. Python-dateutil

python-dateutil模組提供了對標準datetime模組的強大擴充套件。我的經驗是,常規的Python日期時間功能在哪裏結束,而python-dateutil就出現了。

您可以使用此庫做很多很棒的事情。 我將這些範例限製爲我發現特別有用的範例:模糊分析日誌檔案中的日期,例如:

在这里插入图片描述

有關更多功能,請參見完整文件,例如:

  • 計算相對增量(下個月,明年,下週一,該月的最後一週等)和兩個給定日期物件之間的相對增量。
  • 使用iCalendar規範的超集,根據重複規則計算日期。
  • tzfile檔案(/ etc / localtime,/ usr / share / zoneinfo等)的時區(tzinfo)實現,TZ環境字串(所有已知格式),iCalendar格式檔案,給定範圍(在相對增量的幫助下),本地計算機 時區,固定偏移時區,UTC時區和基於Windows註冊表的時區。
  • 基於奧爾森數據庫的內部最新世界時區資訊。
  • 使用Western,Orthodox或Julian演算法計算任意一年的復活節週日日期。

11. 進度條:progress和tqdm

這裏有點作弊,因爲這是兩個包,但忽略其中之一是不公平的。

您可以建立自己的進度條,這也許很有趣,但是使用progress或tqdm程式包更快,更不容易出錯。

progress

藉助這個軟體包,您可以輕鬆建立進度條:

在这里插入图片描述

在这里插入图片描述

tqdm

tqdm的功能大致相同,但似乎是最新的。首先以gif動畫形式進行一些演示:

在这里插入图片描述

12. IPython

在这里插入图片描述

我確定您知道Python的互動式外殼,這是執行Python的好方法。但是您也知道IPython shell嗎?如果您經常使用互動式外殼程式,但您不瞭解IPython,則應該檢查一下!

增強的IPython shell提供的一些功能包括:

  • 全面的物件自省。
  • 輸入歷史記錄,跨對談持續存在。
  • 在具有自動生成的參照的對談期間快取輸出結果。
  • 製表符補全,預設情況下支援python變數和關鍵字,檔名和函數關鍵字的補全。
  • 「魔術」命令,用於控制環境並執行許多與IPython或操作系統相關的任務。
  • 對談記錄和重新載入。
  • 對pdb偵錯程式和Python分析器的整合存取。
  • IPython的一個鮮爲人知的功能:它的體系結構還允許並行和分佈式計算。

IPython是Jupyter Notebook的核心,它是一個開放原始碼Web應用程式,可讓您建立和共用包含實時程式碼,方程式,視覺化效果和敘述文字的文件。

13. Homeassistant

在这里插入图片描述

我喜歡家庭自動化。這對我來說是一種嗜好,但我至今仍對此深表歉意,因爲它現在控制着我們房屋的大部分。我使用Home Assistant將房子中的所有系統捆綁在一起。儘管它確實是一個完整的應用程式,但是您也可以將其安裝爲Python PyPI軟體包。

  • 我們的大多數燈具都是自動化的,百葉窗也是如此。
  • 我監視我們的天然氣用量,電力用量和產量(太陽能電池板)。
  • 我可以跟蹤大多數電話的位置,並在進入一個區域時開始操作,例如當我回家時開啓車庫燈。
  • 它還可以控制我們所有的娛樂系統,例如三星電視和Sonos揚聲器。
  • 它能夠自動發現網路上的大多數裝置,因此上手起來非常容易。

我已經每天使用Home Assistant已有3年了,它仍處於測試階段,但這是我嘗試過的所有平臺中最好的平臺。它能夠整合和控制各種裝置和協定,並且都是免費和開源的。

如果您有興趣將房屋自動化,請確保有機會!如果您想瞭解更多,請存取他們的官方網站。如果可以,請將其安裝在Raspberry Pi上。到目前爲止,這是最簡單,最安全的入門方法。我將其安裝在Docker容器內功能更強大的伺服器上。

14. Flask

Flask是我的入門庫,用於建立快速的Web服務或簡單的網站。 這是一個微框架,這意味着Flask旨在使核心保持簡單但可延伸。 有700多個官方和社羣擴充套件。

如果您知道自己將開發一個大型的Web應用程式,則可能需要研究一個更完整的框架。 該類別中最受歡迎的是Django。

15. BeautifulSoup

如果您從網站上提取了一些HTML,則需要對其進行解析以獲取實際所需的內容。 Beautiful Soup是一個Python庫,用於從HTML和XML檔案中提取數據。 它提供了導航,搜尋和修改解析樹的簡單方法。 它非常強大,即使損壞了,也能夠處理各種HTML。 相信我,HTML經常被破壞,所以這是一個非常強大的功能。

它的一些主要功能:

  • Beautiful Soup會自動將傳入文件轉換爲Unicode,將傳出文件轉換爲UTF-8。 您無需考慮編碼。
  • Beautiful Soup位於流行的Python解析器(如lxml和html5lib)的頂部,使您可以嘗試不同的解析策略或提高靈活性。
  • BeautifulSoup會解析您提供的任何內容,併爲您做遍歷樹的工作。 您可以將其告訴「查詢所有鏈接」,或「查詢帶有粗體的表格標題,然後給我該文字。」

本文來自於medium,原文作者:Erik van Baaren,原文標題:Top 15 Python Packages You Must Try,編譯校對:蜂鳥數據。

如果喜歡我們的文章,記得點贊和收藏哦,我們每天都會爲大家帶來Python,數據科學和量化交易的精品內容。

【關於我們】

蜂鳥數據:國內領先的金融數據API提供商。

蜂鳥數據團隊由業界頂尖的數據工程師,數據科學家和寬客組成,我們正努力構建一個強大的金融數據庫,並提供API介面,目標是令金融數據開源化和平民化。

瀏覽並測試我們介面吧,目前覆蓋股票,外匯,商品期貨,數位貨幣和宏觀經濟領域,包括實時報價(tick)和歷史數據(分鐘),提供REST API和Websocket兩種接入方式,能夠滿足金融分析師,量化交易和理財app的需求。

需要金融數據?利用蜂鳥API將數據整合到您的應用

如果您準備好了,請登錄蜂鳥官網,註冊免費獲取API金鑰,然後開始探索我們的金融數據庫吧。