當前位置: 妍妍網 > 辦公

整理了100個Python精選庫,建議收藏!

2024-04-02辦公

(點選上方快速關註並設定為星標,一起學Python)

大家好,這裏是程式設計師晚楓,小紅書也叫這個名字。Python為啥這麽火,這麽多人學,就是因為簡單好學,功能強大,整個社群非常活躍,資料很多。而且這語言涉及了方方面面,比如自動化測試,運維,爬蟲,數據分析,機器學習,金融領域,後端開發,雲端運算,遊戲開發都有涉及。

萬丈高樓平地起,Python這座大廈能夠如此強大,就是擁有強大的成千上萬的庫的支持,無數牛x的輪子在支持這座大廈,今天我們來一起梳理一下,俯瞰整個Python寶庫。

我大概列了一下整個Python庫的套用的方法面面,粗略算算就有20幾個方向。左右兩邊分兩個方向,左邊負責進攻(主外),每一項單獨拉出來都是精品,都是Python套用裏面拳頭產品;右邊負責守(主內),都是涉及底層的配置,算是整個大廈的地基。

下面我們挑選每個領域的的精品庫,展現給大家,看完之後,你一定會大叫,WC,這麽多庫我都沒有見過~~

1、Python大廈的底層基建

環境管理

管理 Python 版本和環境的工具

pyenv:簡單的 Python 版本管理工具。

Vex:可以在虛擬環境中執行命令。

virtualenv:建立獨立 Python 環境的工具。

buildout:在隔離環境初始化後使用聲明性配置管理。

包管理

管理包和依賴的工具。

pip:Python 包和依賴關系管理工具。

pip-tools:保證 Python 包依賴關系更新的一組工具。

pipenv:Python 官方推薦的新一代包管理工具。

poetry: 可完全取代 setup.py 的包管理工具。

conda:跨平台,Python 二進制包管理工具。

Curdling:管理 Python 包的命令列工具。

wheel:Python 分發的新標準,意在取代 eggs。

分發

打包為可執行檔以便分發。

PyInstaller:將 Python 程式轉換成獨立的執行檔(跨平台)。

cx_Freeze:將python程式轉換為帶有一個動態連結庫的可執行檔。

dh-virtualenv:構建並將 virtualenv 虛擬環境作為一個 Debian 包來釋出。

Nuitka:將指令碼、模組、包編譯成可執行檔或擴充套件模組。

py2app:將 Python 指令碼變為獨立軟體包(Mac OS X)。

py2exe:將 Python 指令碼變為獨立軟體包(Windows)。

pynsist:一個用來建立 Windows 安裝程式的工具,可以在安裝程式中打包 Python 本身。

配置

用來保存和解析配置的庫。

config:logging 模組作者寫的分級配置模組。

ConfigObj:INI 檔解析器,帶驗證功能。

ConfigParser:(Python 標準庫) INI 檔解析器。

profig:透過多種格式進行配置,具有數值轉換功能。

python-decouple:將設定和程式碼完全隔離。

2、Python大廈的管理配置

aiofiles:基於 asyncio,提供檔異步操作

imghdr:(Python 標準庫)檢測圖片型別

mimetypes:(Python 標準庫)將檔名對映為 MIME 型別

path.py:對 os.path 進行封裝的模組

pathlib:(Python3.4+ 標準庫)跨平台的、物件導向的路徑操作庫

python-magic:檔型別檢測的第三方庫 libmagic 的 Python 介面

Unipath:用物件導向的方式操作檔和目錄

watchdog:管理檔案系統事件的 API 和 shell 工具

pofile:給小白的檔處理工具

日期和時間

操作日期和時間的類別庫。

arrow:更好的 Python 日期時間操作類別庫。

Chronyk:Python 3 的類別庫,用於解析手寫格式的時間和日期。

dateutil:Python datetime 模組的擴充套件。

delorean:解決 Python 中有關日期處理的棘手問題的庫。

maya:人性化的時間處理庫。

moment:一個用來處理時間和日期的 Python 庫。靈感來自於 Moment.js。

pendulum:一個比 arrow 更具有明確的,可預測的行為的時間操作庫。

PyTime:一個簡單易用的 Python 模組,用於透過字串來操作日期/時間。

pytz:現代以及歷史版本的世界時區定義。將時區資料庫引入 Python。

when.py:提供使用者友好的函式來幫助使用者進行常用的日期和時間操作。

potime:統計程式碼執行時間的程式碼工具。

文本處理

用於解析和操作文本的庫。

  • 通用

  • chardet:字元編碼檢測器,相容 Python2 和 Python3。

    difflib:(Python 標準庫)幫助我們進行差異化比較。

    ftfy:讓 Unicode 文本更完整更連貫。

    fuzzywuzzy:模糊字串匹配。

    Levenshtein:快速計算編輯距離以及字串的相似度。

    pangu.py:在中日韓語字元和數位字母之間添加空格。

    pypinyin:漢字拼音轉換工具 Python 版。

    shortuuid:一個生成器庫,用以生成簡潔的,明白的,URL 安全的 UUID。

    simplejson:Python 的 JSON 編碼、解碼器。

    unidecode:Unicode 文本的 ASCII 轉換形式 。

    uniout:打印可讀的字元,而不是轉義的字串。

    xpinyin:一個用於把漢字轉換為拼音的庫。

    yfiglet-figlet:pyfiglet -figlet 的 Python 實作。

    flashtext: 一個高效的文本尋找替換庫。

  • Slug 化

  • awesome-slugify:一個 Python slug 化庫,可以保持 Unicode。

    python-slugify:Python slug 化庫,可以把 unicode 轉化為 ASCII。

    unicode-slugify:一個 slug 工具,可以生成 unicode slugs ,需要依賴 Django 。

  • 解析器

  • phonenumbers:解析,格式化,儲存,驗證電話號碼。

    PLY:lex 和 yacc 解析工具的 Python 實作。

    Pygments:通用語法高亮工具。

    pyparsing:生成通用解析器的框架。

    python-nameparser:把一個人名分解為幾個獨立的部份。

    python-user-agents:瀏覽器 user agent 解析器。

    sqlparse:一個無驗證的 SQL 解析器。

    辦公文本格式處理

  • 通用

  • tablib:一個用來處理中表格數據的模組。

  • Office

  • Marmir:把輸入的 Python 數據結構轉換為電子表單。

    openpyxl:一個用來讀寫 Excel 2010 xlsx/xlsm/xltx/xltm 檔的庫。

    pyexcel:一個提供統一 API,用來讀寫,操作 Excel 檔的庫。

    python-docx:讀取,查詢以及修改 Microsoft Word 2007/2008 docx 檔。

    relatorio:樣版化 OpenDocument 檔。

    unoconv:在 LibreOffice/OpenOffice 支持的任意檔格式之間進行轉換。

    XlsxWriter:一個用於建立 Excel .xlsx 檔的 Python 模組。

    xlwings:一個使得在 Excel 中方便呼叫 Python 的庫(反之亦然),基於 BSD 協定。

    xlwt:讀寫 Excel 檔的數據和格式資訊。

    poexcel:處理Excel。

  • PDF

  • PDFMiner:一個用於從 PDF 文件中抽取資訊的工具。

    popdf:一個用於處理pdf的工具。

    PyPDF2:一個可以分割,合並和轉換 PDF 頁面的庫。

    ReportLab:快速建立富文本 PDF 文件。

  • Markdown

  • Mistune:快速並且功能齊全的純 Python 實作的 Markdown 解析器。

    Python-Markdown:John Gruber’s Markdown 的 Python 版實作。

    Python-Markdown2:純 Python 實作的 Markdown 解析器,比 Python-Markdown 更快,更準確

  • YAML

  • PyYAML:Python 版本的 YAML 解析器。

  • CSV

  • csvkit:用於轉換和操作 CSV 的工具。

    配置

    用來保存和解析配置的庫。

    config:logging 模組作者寫的分級配置模組。

    ConfigObj:INI 檔解析器,帶驗證功能。

    ConfigParser:(Python 標準庫) INI 檔解析器。

    profig:透過多種格式進行配置,具有數值轉換功能。

    python-decouple:將設定和程式碼完全隔離。

    命令列工具

    用於建立命令列程式的庫。

  • 命令列程式開發

  • asciimatics:跨平台,全螢幕終端包(即滑鼠/鍵盤輸入和彩色,定位文本輸出),完整的復雜動畫和特殊效果的高級 API。

    cement:Python 的命令列程式框架。

    click:一個透過組合的方式來建立精美命令列界面的包。

    cliff:一個用於建立命令列程式的框架,可以建立具有多層命令的命令列程式。

    clint:Python 命令列程式工具。

    colorama:跨平台彩色終端文本。

    docopt:Python 風格的命令列參數解析器。

    Gooey:一條命令,將命令列程式變成一個 GUI 程式。

    python-prompt-toolkit:一個用於構建強大的互動式命令列程式的庫。

    python-fire:Google 出品的一個基於 Python 類的構建命令列界面的庫。

    Pythonpy:在命令列中直接執行任何 Python 指令。

  • 生產力工具

  • aws-cli:Amazon Web Services 的通用命令列界面。

    bashplotlib:在終端中進行基本繪圖。

    caniusepython3:判斷是哪個計畫妨礙你你移植到 Python3。

    cookiecutter:從 cookiecutters(計畫樣版)建立計畫的一個命令列工具。

    doitlive:一個用來在終端中進行現場演示的工具。

    pyftpdlib:一個速度極快和可延伸的 Python FTP 服務庫。

    howdoi:透過命令列獲取即時的編程問題解答。

    httpie:一個命令列 HTTP 客戶端,cURL 的替代品,易用性更好。

    PathPicker:從 bash 輸出中選出檔。

    percol:向 UNIX shell 傳統管道概念中加入互動式選擇功能。

    SAWS:一個加強版的 AWS 命令列。

    thefuck:修正你之前的命令列指令。

    mycli:一個 MySQL 命令列客戶端,具有自動補全和語法高亮功能。

    pgcli:Postgres 命令列工具,具有自動補全和語法高亮功能。

    try:一個從來沒有更簡單的命令列工具,用來試用 python 庫。

    3、Python大廈的倉庫

    資料庫

    Python 實作的資料庫。

    pickleDB:一個簡單,輕量級鍵值儲存資料庫。

    PipelineDB:流式 SQL 資料庫。

    TinyDB:一個微型的,面向文件型資料庫。

    ZODB:一個 Python 原生物件資料庫。一個鍵值和物件圖資料庫。

    資料庫驅動

    用來連線和操作資料庫的庫。

  • MySQL:awesome-mysql 系列

  • aiomysql:基於 asyncio 的異步 MySQL 資料庫操作庫。

    mysql-python:Python 的 MySQL 資料庫連結器。

    ysqlclient:mysql-python 分支,支持 Python 3。

    oursql:一個更好的 MySQL 連結器,支持原生預編譯指令和 BLOBs。

    PyMySQL:純 Python MySQL 驅動,相容 mysql-python。

  • PostgreSQL

  • psycopg2:Python 中最流行的 PostgreSQL 介面卡。

    queries:psycopg2 庫的封裝,用來和 PostgreSQL 進行互動。

    txpostgres:基於 Twisted 的異步 PostgreSQL 驅動。

  • 其他關系型資料庫

  • apsw:另一個 Python SQLite 封裝。

    dataset:在資料庫中儲存 Python 字典

    pymssql:一個簡單的 Microsoft SQL Server 資料庫介面。

  • NoSQL 資料庫

  • asyncio-redis:基於 asyncio 的 redis 客戶端 (PEP 3156)。

    cassandra-python-driver:Cassandra 的 Python 驅動。

    HappyBase:一個為 Apache HBase 設計的,對開發者友好的庫。

    Plyvel:一個快速且功能豐富的 LevelDB 的 Python 介面。

    py2neo:Neo4j restful 介面的 Python 封裝客戶端。

    pycassa:Cassandra 的 Python Thrift 驅動。

    PyMongo:MongoDB 的官方 Python 客戶端。

    redis-py:Redis 的 Python 客戶端。

    telephus:基於 Twisted 的 Cassandra 客戶端。

    txRedis:基於 Twisted 的 Redis 客戶端。

    4、Python大廈的網路通訊

    網路

    用於網路編程的庫。

    asyncio:(Python 標準庫) 異步 I/O, 事件迴圈, 協程以及任務。

    Twisted:一個事件驅動的網路引擎。

    pulsar:事件驅動的並行框架。

    diesel:基於 Greenlet 的事件 I/O 框架。

    pyzmq:一個 ZeroMQ 訊息庫的 Python 封裝。

    Toapi:一個輕巧,簡單,快速的 Flask 庫,致力於為所有網站提供 API 服務。

    txZMQ:基於 Twisted 的 ZeroMQ 訊息庫的 Python 封裝。

    HTTP

    使用 HTTP 的庫。

    aiohttp:基於 asyncio 的異步 HTTP 網路庫。

    requests:人性化的 HTTP 請求庫。

    grequests:requests 庫 + gevent ,用於異步 HTTP 請求.

    httplib2:全面的 HTTP 客戶端庫。

    treq:類似 requests 的 Python API 構建於 Twisted HTTP 客戶端之上。

    urllib3:一個具有執行緒安全連線池,支持檔 post,清晰友好的 HTTP 庫。

    WebSocket 幫助使用 WebSocket 的庫。

    AutobahnPython:給 Python 、使用的 WebSocket & WAMP 基於 Twisted 和 asyncio。

    Crossbar:開源統一套用路由(Websocket & WAMP for Python on Autobahn)。

    django-socketio:給 Django 用的 WebSockets。

    WebSocket-for-Python:為 Python2/3 以及 PyPy 編寫的 WebSocket 客戶端和伺服器庫。

    WSGI 伺服器

    相容 WSGI 的 web 伺服器

    gunicorn:Pre-forked, 部份是由 C 語言編寫的。

    uwsgi:uwsgi 計畫的目的是開發一組全棧工具,用來建立托管服務, 由 C 語言編寫。

    bjoern:異步,非常快速,由 C 語言編寫。

    fapws3:異步 (僅對於網路端),由 C 語言編寫。

    meinheld:異步,部份是由 C 語言編寫的。

    netius:異步,非常快速。

    paste:多執行緒,穩定,久經考驗。

    rocket:多執行緒。

    waitress:多執行緒, 是它驅動著 Pyramid 框架。

    Werkzeug:一個 WSGI 工具庫,驅動著 Flask ,而且可以很方便大嵌入到你的計畫中去。

    Web 框架

    全棧 Web 框架。

    Django:Python 界最流行的 web 框架。

    Flask:一個 Python 微型框架。

    pyramid:一個小巧,快速,接地氣的開源 Python web 框架。

    Bottle:一個快速小巧,輕量級的 WSGI 微型 web 框架。

    CherryPy:一個極簡的 Python web 框架,服從 HTTP/1.1 協定且具有 WSGI 執行緒池。

    TurboGears:一個可以擴充套件為全棧解決方案的微型框架。

    Tornado:一個 web 框架和異步網路庫。

    sanic:基於 Python3.5+ 的異步網路框架。

    starlette: 一款輕量級,高效能的 ASGI 框架

    電子商務

    用於電子商務以及支付的框架和庫。

    django-oscar:一個用於 Django 的開源的電子商務框架。

    django-shop:一個基於 Django 的店鋪系統。

    Cartridge:一個基於 Mezzanine 構建的購物車套用。

    shoop:一個基於 Django 的開源電子商務平台。

    alipay:非官方的 Python 支付寶 API。

    merchant:一個可以接收來自多種支付平台支付的 Django 套用。

    money:一個貨幣類別庫。帶有可選的 CLDR 後端在地化格式,提供可延伸的貨幣兌換解決方案。

    python-currencies:顯示貨幣格式以及它的數值。

    RESTful API

    用來開發 RESTful APIs 的庫

  • Django

  • django-rest-framework:一個強大靈活的工具,用來構建 web API。

    django-tastypie:為 Django 套用開發 API。

    django-formapi:為 Django 的表單驗證,建立 JSON APIs 。

  • Flask

  • flask-api:為 flask 開發的,可瀏覽 Web APIs 。

    flask-restful:為 flask 快速建立 REST APIs 。

    flask-restless:為 SQLAlchemy 定義的資料庫模型建立 RESTful APIs 。

    flask-api-utils:為 Flask 處理 API 表示和驗證。

    eve:REST API 框架,由 Flask, MongoDB 等驅動。

  • Pyramid

  • cornice:一個 Pyramid 的 REST 框架 。

  • 與框架無關的

  • falcon:一個用來建立雲 API 和 web app 後端的高效能框架。

    sandman:為現存的資料庫驅動系統自動建立 REST APIs 。

    restless:框架無關的 REST 框架 ,基於從 Tastypie 學到的知識。

    ripozo:快速建立 REST/HATEOAS/Hypermedia APIs。

    樣版引擎

    樣版生成和詞法解析的庫和工具。

    Jinja2:一個現代的,對設計師友好的樣版引擎。

    Chameleon:一個 HTML/XML 樣版引擎。模仿了 ZPT(Zope Page Templates), 進行了速度上的最佳化。

    Genshi:Python 樣版工具,用以生成 web 感知的結果。

    Mako:Python 平台的超高速輕量級樣版。

    佇列

    處理事件以及任務佇列的庫。

    celery:一個異步任務佇列/作業佇列,基於分布式訊息傳遞。

    huey:小型多執行緒任務佇列。

    mrq:Mr. Queue -一個 Python 的分布式 worker 任務佇列, 使用 Redis 和 gevent。

    rq:簡單的 Python 作業佇列。

    simpleq:一個簡單的,可無限擴張的,基於亞馬遜 SQS 的佇列。

    搜尋

    對數據進行索引和執行搜尋查詢的庫和軟體。

    django-haystack:Django 模組化搜尋。

    elasticsearch-py:Elasticsearch 的官方底層 Python 客戶端。

    elasticsearch-dsl-py:Elasticsearch 的官方高級 Python 客戶端。

    solrpy:solr 的 Python 客戶端。

    Whoosh:一個快速的純 Python 搜尋引擎庫。

    電子信件

    用來發送和解析電子信件的庫。

    django-celery-ses:帶有 AWS SES 和 Celery 的 Django email 後端。

    envelopes:供人類使用的電子信件庫。

    flanker:一個 email 地址和 Mime 解析庫。

    imbox:Python IMAP 庫。

    inbox.py:Python SMTP 伺服器。

    inbox:一個開源電子信件工具箱。

    lamson:Python 風格的 SMTP 套用伺服器。

    mailjet:Mailjet API 實作,用來提供批次發送信件,統計等功能。

    marrow.mailer:高效能可延伸信件分發框架。

    modoboa:一個信件托管和管理平台,具有現代的、簡約的 Web UI。

    pyzmail:建立,發送和解析電子信件。

    Talon:Mailgun 庫,用來抽取資訊和簽名。

    yagmail:yagmail是一個GMAIL / SMTP客戶端,旨在使其盡可能簡單地發送電子信件。

    URL 處理

    解析 URLs 的庫

    furl:一個讓處理 URL 更簡單小型 Python 庫。

    purl:一個簡單的,不可變的 URL 類,具有簡潔的 API 來進行詢問和處理。

    pyshorteners:一個純 Python URL 縮短庫。

    shorturl:生成短小 URL 和類似 bit.ly 短鏈的 Python 實作。

    webargs:一個解析 HTTP 請求參數的庫,內建對流行 web 框架的支持,包括 Flask, Django, Bottle, Tornado 和 Pyramid。

    5、Python大廈的動力系統

    行程

    作業系統行程啟動及通訊庫。

    envoy:比 Python subprocess 模組更人性化。

    sarge:另一 種 subprocess 模組的封裝。

    sh:一個完備的 subprocess 替代庫。

    並行和並列

    用以進行並行和並列操作的庫。

    multiprocessing:(Python 標準庫) 基於行程的「執行緒」介面。

    threading:(Python 標準庫)更高層的執行緒介面。

    eventlet:支持 WSGI 的異步框架。

    gevent:一個基於協程的 Python 網路庫,使用 greenlet。

    Tomorrow:用於產生異步程式碼的神奇的裝飾器語法實作。

    uvloop:在 libuv 之上超快速實作 asyncio 事件迴圈。

    不看不知道,一看真的是大吃一驚,Python的庫真的太多太多了。以上100多庫只是Python帝國大廈的一部份,負責構建大廈的內部基石。後面小編會繼續介紹Python套用的庫大全,敬請期待。

    -END-