阅读本文大概需要 3 分钟。

一门语言好用、方便的程度在很多时候会取决于这门语言相关的库够不够丰富,Python 之所以火爆除了其本身的语法和特性之外,还在一定程度上取决于其有太多太多库的支持,不论是官方维护的还是第三方开发的。就比如说做机器学习为什么很多人都用 Python,一个非常大的因素就是 TensorFlow 和 PyTorch 对 Python 的支持。当然在这里并不是说 Python 的库真的就全的不要不要的,它在某些领域或者项目的生态还是有待完善的。

正好昨天刷到知乎一个问题「你见过哪些相见恨晚的 Python 库?」,其意就是想了解下有哪些非常好用的提高生产力的 Python 库。一些回答直接把 awesome-python 贴过来,点赞非常多,当然多归多,但是里面很多都是些过期的或者其实没太有什么价值的库,反而会增加了挑选库的成本。我大体上把一些回答过了一遍,另外结合自己平时了解的内容,稍微对一些基础生产力库做了简单的梳理,在这里分享给大家。

所以这里就不再针对于一些特殊的场景推荐了,如一些 Web开发库、网络请求库、数据操作库、数据分析库、机器分析库等等。下面主要罗列一些适用范围和方向较广,对于一些基础设施的建设比较有用,能在多数场景下提高 Python 生产力的库,描述比较简单,主要是提供一个列表,仅供参考哈。

attrs、cattrs

GitHub:https://github.com/python-attrs/attrs、https://github.com/Tinche/cattrs

简化类的定义、序列化反序列化等操作。

个人写的简介:https://mp.weixin.qq.com/s/oHK-Y4lOeaQCFtDWgqXxFA

loguru

GitHub:https://github.com/Delgan/loguru

可简化日志记录写法。

个人写的简介:https://mp.weixin.qq.com/s/5Ri1WS5cTGCNAQ0I_zYycg

autopep8

GitHub:https://github.com/hhatto/autopep8

把 Python 代码转成符合 PEP8 规范的代码。

psutil

GitHub:https://github.com/giampaolo/psutil

Python 实现任务监控的库。

furl

GitHub:https://github.com/gruns/furl

对 url 的处理非常方便,比 urllib 等库好用多。

retrying、tenacity

GitHub:https://github.com/rholder/retrying、https://github.com/jd/tenacity

异常重试库,如出错之后重试多少次,尤其在发起一些 HTTP 请求时非常有用,当然也能用于其他地方。

typing

Docs:https://docs.python.org/zh-cn/3/library/typing.html#module-typing

对 Python 类型的支持,支持多种类型、嵌套类型,也推荐多多使用 Python 的类型注解。

argparse

Docs:https://docs.python.org/zh-cn/3/library/argparse.html

个人曾经使用过几个命令行解析工具,如 docopt,但后来还是转回来了 argparse,功能齐全强大。

absl-py

GitHub:https://github.com/abseil/abseil-py

个人感觉比 argparse 更易用的库,如 TensorFlow 就在使用这个,对于定义一些 Flag 非常方便。

pipenv

GitHub:https://github.com/pypa/pipenv

功能更全的包管理工具,集成虚拟环境、支持 Lock 机制锁定安装包版本和依赖信息。当然也有坑点,可自行搜索。

drf

Docs:https://www.django-rest-framework.org/

基于 Django 的 REST Framework,快速实现 REST API。

watchdog

GitHub:https://github.com/gorakhargosh/watchdog

方便监视文件系统改动。

glob

Docs:https://docs.python.org/3/library/glob.html

对文件的操作非常方便。

2to3

Docs:https://docs.python.org/2/library/2to3.html

把 Python2 代码转成 Python3 代码。

glom

GitHub:https://github.com/mahmoud/glom

对 JSON 嵌套的处理非常方便。

pathlib

Docs:https://docs.python.org/3/library/pathlib.html

更为方便的 Python 路径操作库。

environs

GitHub:https://github.com/sloria/environs

对于环境变量的获取非常方便,支持多种类型,如 int、bool 等。

pysnooper

GitHub:https://github.com/cool-RR/PySnooper

非常方便简单的 Python 调试器,可以追踪到代码每一处细节的执行状态。

tqdm

GitHub:https://github.com/tqdm/tqdm

进度条控制显示非常方便。

sh

GitHub:https://github.com/amoffat/sh

对 Linux 一些命令的封装,简单好用又高效。

faker

GitHub:https://github.com/joke2k/faker

模拟数据的生成。

个人写的简介: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

时间解析和处理库,非常方便。arrow 目前 Star 最多,好评最多。

yagmail

GitHub:https://github.com/kootenpv/yagmail

方便的发邮件库,替代自带的 smtplib。

chardet

GitHub:https://github.com/chardet/chardet

字符串类型编码检测。

pypinyin

GitHub:https://github.com/mozillazg/python-pinyin

汉字转拼音,在一些中文转化处理上很有用。

个人写的简介:https://mp.weixin.qq.com/s/NvA3j8Ns1-6CFgWpUcWwQw

sphinx

Docs:https://www.sphinx-doc.org/en/master/

编写文档使用,大多数 Python 库文档都是这个写的,如 Scrapy、requests。

个人 sphinx + markdown 的样例:https://github.com/Gerapy/Docs

jinja2

GitHub:https://github.com/pallets/jinja

一个方便的模板引擎,呈现页面时很方便。

click

GitHub:https://github.com/pallets/click

更方便灵活地实现命令行传递参数。

ray

GitHub:https://github.com/ray-project/ray

分布式多进程管理。

supervisor

GitHub:https://github.com/Supervisor/supervisor

进程管理工具,如实现多任务后台运行,Docker 打包时会经常用到。

apscheduler

GitHub:https://github.com/agronholm/apscheduler

Python 定时任务,不过 K8S 也可以实现,个人目前可能更倾向于 K8S。

intelpython

Home:https://software.intel.com/en-us/distribution-for-python

这不是 Python 库,是一个 Intel 开发的基于 Intel 处理器优化的 Python 解释器,对于大规模运算提升很大。

完毕。

好啦,先推荐这么多了,后面还会慢慢积累,大家可以了解下,个人感觉有不少库还是能极大提高生产力的。

往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习在线手册深度学习在线手册AI基础下载(pdf更新到25集)备注:加入本站微信群或者qq群,请回复“加群”获取一折本站知识星球优惠券,请回复“知识星球”喜欢文章,点个在看

推荐一些能提高生产力的 Python 库相关推荐

  1. 推荐一些能能提高生产力的 Python 库

    " 阅读本文大概需要 3 分钟. " 一门语言好用.方便的程度在很多时候会取决于这门语言相关的库够不够丰富,Python 之所以火爆除了其本身的语法和特性之外,还在一定程度上取决于 ...

  2. 推荐一个牛逼的生物信息 Python 库 - Dash Bio

    翻译 | Lemonbit 来源 | Plotly 译文出品 | Python数据之道 推荐一个牛逼的生物信息 Python 库 - Dash Bio Dash Bio 是一个免费的开源 Python ...

  3. 消除拖延的方法_拖延很烂—因此,这就是“吃青蛙”提高生产力的方法

    消除拖延的方法 在最有价值的活动上花费最宝贵的时间 ,您将改变自己的生活轨迹. (Spend Your Most Valuable Time on Your Most Valuable Activit ...

  4. 看板:促进协作和提高生产力的有效方法

    看板是一种简化的工作流管理系统,旨在实现生产过程中的效率和敏捷性.它通常用于软件开发,但侧重于逐步改进业务的各个领域,而不仅仅是IT领域. 20世纪40年代初,看板由日本丰田汽车(Toyota)开发, ...

  5. 定位:提高生产力的开端

    一.定位的含义 给一个事物或某个实体找准相应的位置. 个人,需要找准自己的位置,扮演好自己相应的角色,发挥最大的贡献. 企业,需要找准在产业和行业中的位置,利益最大化. 产品,需要认准自己的价值,为目 ...

  6. 可提高生产力的实用工具集锦

    工作中总是需要用到各式各样的软件,下面列一些我个人认为比较实用的工具,尽量以开源.免费工具为主,仅做简要介绍,详情请自行搜索.Ok,闲话少说,进入正题: 实用小工具 f.lux f.lux能够根据时间 ...

  7. markdown流程图多分支_提高生产力的好工具MarkDown语法学习

          Python自动化测试开发班3月7号开课,2月15号前报名优惠800 什么是Markdown Markdown 是一种用来写作的轻量级「标记语言」,它用简洁的语法代替排版,而不像一般我们用 ...

  8. 效率倍增,5 个提高生产力的 Jupyter notebook插件

    Jupyter Notebook 因其可用性和实用性而成为数据分析和机器学习模型领域最流行的 IDE,它也是很多数据初学者的首选 IDE.它最具特色的是,拥有丰富的插件.扩展数据处理能力和提升工作效率 ...

  9. python 文字识别 准确率_关于OCR图片文本检测、推荐一个 基于深度学习的Python 库!...

    大家好,我是 zeroing~ 1,前言 之前谈到图片文本 OCR 识别时,写过一篇文章介绍了一个 Python 包 pytesseract ,具体内容可参考 介绍一个Python 包 ,几行代码可实 ...

最新文章

  1. MySQL 性能优化之高阶神技
  2. 聊一聊 Python 安装中的 --enable-shared
  3. 解决python发送multipart/form-data请求上传文件的问题
  4. 32 多线程同步值Semaphore(信号量)
  5. java的比较器_java两种比较器总结
  6. Some Fiori offline screenshot in Mac
  7. 【应用】如何更好的简化工业现场采集控制?
  8. python的人工智能和c++的有什么区别_为什么人工智能岗位有些招聘C/C 有些招聘Python到底哪门编程语言更重要(恰恰相反C++在人工智能方面的用处很大)...
  9. 章二测试 1613999388
  10. java案例代码18--算法-选择排序以及二分查找排序
  11. VS2012错误之 warning LNK4075: 忽略“/EDITANDCONTINUE”(由于“/SAFESEH”规范)
  12. 采用文件白名单方式构建主机安全环境
  13. iOS ApplePay paymentData 加解密 (待续)
  14. ant design入门学习笔记
  15. ExtJS实战教程~~前言
  16. meta-inf java_jar包中的META-INF 文件夹是干嘛的?
  17. pimple idiom
  18. 分层化网络设计:核心层,汇聚层,接入层
  19. Hi-C测序及测序数据特征
  20. 数据挖掘—逻辑回归分类—信用卡欺诈分析

热门文章

  1. Spring MVC的工作原理,我们来看看其源码实现
  2. leetcode Add and Search Word - Data structure design
  3. 条款14:在资源管理类中心copying行为(Think carefully about copying behavior in resource-manage classes)...
  4. Fiddler本机调试的方法
  5. python怎么把所有标点符号置空_Python从小白到攻城狮(1)——python环境搭建
  6. [SQL] Query mystore start [ERR] 1005 - Can't create table 'mystore.admin' (errno: 150)
  7. 【OpenCV入门学习笔记1】:Mat对象的指针操作和掩膜操作
  8. JavaSE(二十六)——多线程之模拟龟兔赛跑
  9. 姿态检测 树莓派_3.使用树莓派控制摄像头采集视频及运动检测
  10. Java 8 获取某天最大(23:59:59)最小(00:00:00)时间