python tqdm_推荐一些实用的的 Python 库
halo,大家好,我是黑里怕,今天給大家分享一些Python庫(kù),希望可以給大家?guī)?lái)一些用處!
原作者:崔慶才原出處:技術(shù)博客:靜覓
原文鏈接:推薦一些實(shí)用的的 Python 庫(kù)
一門(mén)語(yǔ)言好用、方便的程度在很多時(shí)候會(huì)取決于這門(mén)語(yǔ)言相關(guān)的庫(kù)夠不夠豐富,Python 之所以火爆除了其本身的語(yǔ)法和特性之外,還在一定程度上取決于其有太多太多庫(kù)的支持,不論是官方維護(hù)的還是第三方開(kāi)發(fā)的。就比如說(shuō)做機(jī)器學(xué)習(xí)為什么很多人都用 Python,一個(gè)非常大的因素就是 TensorFlow 和 PyTorch 對(duì) Python 的支持。當(dāng)然在這里并不是說(shuō) Python 的庫(kù)真的就全的不要不要的,它在某些領(lǐng)域或者項(xiàng)目的生態(tài)還是有待完善的。
正好昨天刷到知乎一個(gè)問(wèn)題「你見(jiàn)過(guò)哪些相見(jiàn)恨晚的 Python 庫(kù)?」,其意就是想了解下有哪些非常好用的提高生產(chǎn)力的 Python 庫(kù)。一些回答直接把 awesome-python 貼過(guò)來(lái),點(diǎn)贊非常多,當(dāng)然多歸多,但是里面很多都是些過(guò)期的或者其實(shí)沒(méi)太有什么價(jià)值的庫(kù),反而會(huì)增加了挑選庫(kù)的成本。我大體上把一些回答過(guò)了一遍,另外結(jié)合自己平時(shí)了解的內(nèi)容,稍微對(duì)一些基礎(chǔ)生產(chǎn)力庫(kù)做了簡(jiǎn)單的梳理,在這里分享給大家。
所以這里就不再針對(duì)于一些特殊的場(chǎng)景推薦了,如一些 Web開(kāi)發(fā)庫(kù)、網(wǎng)絡(luò)請(qǐng)求庫(kù)、數(shù)據(jù)操作庫(kù)、數(shù)據(jù)分析庫(kù)、機(jī)器分析庫(kù)等等。下面主要羅列一些適用范圍和方向較廣,對(duì)于一些基礎(chǔ)設(shè)施的建設(shè)比較有用,能在多數(shù)場(chǎng)景下提高 Python 生產(chǎn)力的庫(kù),描述比較簡(jiǎn)單,主要是提供一個(gè)列表,僅供參考哈。
attrs、cattrs :簡(jiǎn)化類的定義、序列化反序列化等操作。
GitHub:https://github.com/python-attrs/attrs、https://github.com/Tinche/cattrs
個(gè)人寫(xiě)的簡(jiǎn)介:https://mp.weixin.qq.com/s/oHK-Y4lOeaQCFtDWgqXxFA
loguru:可簡(jiǎn)化日志記錄寫(xiě)法
GitHub:https://github.com/Delgan/loguru
個(gè)人寫(xiě)的簡(jiǎn)介:https://mp.weixin.qq.com/s/5Ri1WS5cTGCNAQ0I_zYycg
autopep8:把 Python 代碼轉(zhuǎn)成符合 PEP8 規(guī)范的代碼
GitHub:https://github.com/hhatto/autopep8
psutil:Python 實(shí)現(xiàn)任務(wù)監(jiān)控的庫(kù)
GitHub:https://github.com/giampaolo/psutil
furl :對(duì) url 的處理非常方便,比 urllib 等庫(kù)好用多
GitHub:https://github.com/gruns/furl
retrying、tenacity:異常重試庫(kù),如出錯(cuò)之后重試多少次,尤其在發(fā)起一些 HTTP 請(qǐng)求時(shí)非常有用,當(dāng)然也能用于其他地方。
GitHub:https://github.com/rholder/retrying、https://github.com/jd/tenacity
typing:對(duì) Python 類型的支持,支持多種類型、嵌套類型,也推薦多多使用 Python 的類型注解。
Docs:https://docs.python.org/zh-cn/3/library/typing.html#module-typing
argparse:個(gè)人曾經(jīng)使用過(guò)幾個(gè)命令行解析工具,如 docopt,但后來(lái)還是轉(zhuǎn)回來(lái)了 argparse,功能齊全強(qiáng)大。
Docs:https://docs.python.org/zh-cn/3/library/argparse.html
absl-py
GitHub:https://github.com/abseil/abseil-py
個(gè)人感覺(jué)比 argparse 更易用的庫(kù),如 TensorFlow 就在使用這個(gè),對(duì)于定義一些 Flag 非常方便。
pipenv
GitHub:https://github.com/pypa/pipenv
功能更全的包管理工具,集成虛擬環(huán)境、支持 Lock 機(jī)制鎖定安裝包版本和依賴信息。當(dāng)然也有坑點(diǎn),可自行搜索。
drf:基于 Django 的 REST Framework,快速實(shí)現(xiàn) REST API
Docs:https://www.django-rest-framework.org/
watchdog:方便監(jiān)視文件系統(tǒng)改動(dòng)
GitHub:https://github.com/gorakhargosh/watchdog
glob:對(duì)文件的操作非常方便
Docs:https://docs.python.org/3/library/glob.html
2to3:把 Python2 代碼轉(zhuǎn)成 Python3 代碼
Docs:https://docs.python.org/2/library/2to3.html
glom:對(duì) JSON 嵌套的處理非常方便
GitHub:https://github.com/mahmoud/glom
pathlib:更為方便的 Python 路徑操作庫(kù)
Docs:https://docs.python.org/3/library/pathlib.html
environs
GitHub:https://github.com/sloria/environs
對(duì)于環(huán)境變量的獲取非常方便,支持多種類型,如 int、bool 等。
pysnooper
GitHub:https://github.com/cool-RR/PySnooper
非常方便簡(jiǎn)單的 Python 調(diào)試器,可以追蹤到代碼每一處細(xì)節(jié)的執(zhí)行狀態(tài)。
tqdm:進(jìn)度條控制顯示非常方便
GitHub:https://github.com/tqdm/tqdm
sh :對(duì) Linux 一些命令的封裝,簡(jiǎn)單好用又高效
GitHub:https://github.com/amoffat/sh
faker:模擬數(shù)據(jù)的生成
GitHub:https://github.com/joke2k/faker
個(gè)人寫(xiě)的簡(jiǎn)介:https://mp.weixin.qq.com/s/iLjr95uqgTclxYfWWNxrAA
arrow、dateutil、dateparser、pendulum
GitHub:https://github.com/crsmithdev/arrow、https://github.com/dateutil/dateutil、https://github.com/scrapinghub/dateparser、https://github.com/sdispater/pendulum
時(shí)間解析和處理庫(kù),非常方便。arrow 目前 Star 最多,好評(píng)最多。
yagmail:方便的發(fā)郵件庫(kù),替代自帶的 smtplib
GitHub:https://github.com/kootenpv/yagmail
chardet:字符串類型編碼檢測(cè)
GitHub:https://github.com/chardet/chardet
pypinyin:漢字轉(zhuǎn)拼音,在一些中文轉(zhuǎn)化處理上很有用
GitHub:https://github.com/mozillazg/python-pinyin
個(gè)人寫(xiě)的簡(jiǎn)介:https://mp.weixin.qq.com/s/NvA3j8Ns1-6CFgWpUcWwQw
sphinx
Docs:https://www.sphinx-doc.org/en/master/
編寫(xiě)文檔使用,大多數(shù) Python 庫(kù)文檔都是這個(gè)寫(xiě)的,如 Scrapy、requests。
個(gè)人 sphinx + markdown 的樣例:https://github.com/Gerapy/Docs
jinja2:一個(gè)方便的模板引擎,呈現(xiàn)頁(yè)面時(shí)很方便
GitHub:https://github.com/pallets/jinja
click:更方便靈活地實(shí)現(xiàn)命令行傳遞參數(shù)
GitHub:https://github.com/pallets/click
ray:分布式多進(jìn)程管理
GitHub:https://github.com/ray-project/ray
supervisor
GitHub:https://github.com/Supervisor/supervisor
進(jìn)程管理工具,如實(shí)現(xiàn)多任務(wù)后臺(tái)運(yùn)行,Docker 打包時(shí)會(huì)經(jīng)常用到。
apscheduler
GitHub:https://github.com/agronholm/apscheduler
Python 定時(shí)任務(wù),不過(guò) K8S 也可以實(shí)現(xiàn),個(gè)人目前可能更傾向于 K8S。
intelpython
Home:https://software.intel.com/en-us/distribution-for-python
這不是 Python 庫(kù),是一個(gè) Intel 開(kāi)發(fā)的基于 Intel 處理器優(yōu)化的 Python 解釋器,對(duì)于大規(guī)模運(yùn)算提升很大。
先推薦這么多了,后面還會(huì)慢慢積累,大家可以了解下,有不少庫(kù)還是能極大提高生產(chǎn)力的。
由于這次主要是推薦一些適用范圍和方向較廣,個(gè)人感覺(jué)對(duì)于一些基礎(chǔ)設(shè)施的建設(shè)比較有用的庫(kù),所以一些 Web、爬蟲(chóng)、數(shù)據(jù)分析、機(jī)器學(xué)習(xí)等庫(kù)就沒(méi)有列在這里了。當(dāng)然也由于個(gè)人水平有限,也有很多庫(kù)沒(méi)有列全,如果大家有推薦的,歡迎留言分享哈!
總結(jié)
以上是生活随笔為你收集整理的python tqdm_推荐一些实用的的 Python 库的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 计算机硬件四则运算实验,实验一四则运算(
- 下一篇: python中怎么比较两个列表的大小_P