我干了五年Python开发,天天跟各种库打交道。有些库名声在外,有些库知道的人少但真的能救命。今天掏心窝子说五个冷门好用的,每个都能让你少加班。
第一个是Pendulum。说到时间处理,大家第一反应是datetime。datetime够用,但用起来像在受刑。时区转换要手动算,格式化要记一堆代号。Pendulum把这些破事全包了。你写个now()直接带时区,加减时间就像做数学题。上个月我重构一个定时任务系统,用Pendulum把原本50行的datetime代码缩成了8行。同事问我怎么做到的,我说换了个包。
第二个是PrettyErrors。Python报错信息有多难看,谁用谁知道。一大坨白色文字堆在屏幕上,找真正的原因得用眼睛扫描半天。PrettyErrors给错误信息加了颜色。关键行标红,不重要的灰掉,调用栈按层级缩进。我装了之后,调试速度至少快一倍。以前看报错要花三分钟,现在三十秒就定位到问题了。
第三个是Loguru。logging是Python自带的日志库,功能全但配置起来像写配置文件。你想在控制台打印彩色日志,要配Formatter。想按天分割文件,要配RotatingFileHandler。Loguru把这些全自动化了。一行代码就能跑起来日志。更妙的是它自动捕获异常,自动加行号,自动按文件大小分割。我接手的老项目,把logging替换成Loguru,日志相关的代码少了百分之七十。
第四个是IceCream。调试打印大家习惯用print。print的问题是不够直观。你打印一个变量,不知道它在哪行代码里。IceCream会自动加上文件名、行号、变量名。打印一个字典,它自动给你格式化好。打印函数返回值,它把函数名和结果一起显示。上次排查一个线上bug,我在关键路径插了十个ic(),两分钟就找到了数据异常的点。要是用print,至少得来回改代码十分钟。
第五个是Rich。终端输出谁都能做,但做得好看不容易。Rich让命令行程序直接拥有表格、进度条、语法高亮这些能力。我在写数据导出脚本时,用Rich加了个进度条。老板路过看到,说这程序看着真专业。其实里面逻辑很简单,就是调用了Rich的progress模块。更实用的是它的表格功能,能把数据库查询结果直接变成对齐的终端表格,省去了手动拼接字符串的麻烦。
写代码的人最怕什么。最怕重复劳动。这五个库解决的,全是日常开发里的高频重复工作。时间处理、错误查看、日志配置、调试打印、终端美化。每个都是小场景,但每天都会碰到。用上这些库,你就能把时间花在真正有挑战的事情上。