Python 高級庫15 個讓新手愛不釋手(推薦)
在本文中,我挑選瞭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經常被破壞,所以這是一個非常強大的功能。
它的一些主要功能:
Bautiful Soup會自動將傳入文檔轉換為Unicode,將傳出文檔轉換為UTF-8。您無需考慮編碼。
Beautiful Soup位於流行的Python解析器(如lxml和html5lib)的頂部,使您可以嘗試不同的解析策略或提高靈活性。
BeautifulSoup會解析您提供的任何內容,並為您做遍歷樹的工作。您可以將其告訴“查找所有鏈接”,或“查找帶有粗體的表格標題,然後給我該文字。”
以上就是Python 高級庫15 個讓新手愛不釋手(推薦)的詳細內容,更多關於Python 高級庫的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- 10個頂級Python實用庫推薦
- 手把手教你利用Python創建一個遊戲窗口
- 地圖可視化神器kepler.gl python接口的使用方法
- 新一代Python包管理工具
- python使用IPython調試debug程序