当前位置:首页>python>8 个 Python 库,再也不需要自己编写脚本了

8 个 Python 库,再也不需要自己编写脚本了

  • 2026-10-11 06:50:11
8 个 Python 库,再也不需要自己编写脚本了
关注+星标,每天学习Python新技能

来源:网络

你是否是那种‘不造轮子不舒服’的开发者——需要什么功能?现成的库?不存在的,自己撸代码!JSON 转 CSV?命令行仪表盘?‘给我 30 分钟,Vim 里徒手搞定!’

而真正的效率不是能写多少代码,而是知道什么时候不该写代码。

就拿最近我最常使用的 Rich 来举例,它只用 3 行代码 就能解决了你过去熬夜调试的终端渲染问题:

  • 日志/调试输出 自动变成带语法高亮的可折叠面板(再也不用 print(json.dumps()) 瞎眼了)
  • 表格数据 从歪歪扭扭的 ┐└─ 符号地狱变成自动对齐+分页的印刷级显示
  • 进度条 自带速度预估、动态宽度调整,甚至支持多任务并行——而我曾经花半天时间写出来的版本,连基本的中断恢复都搞不定

Rich 和其他 7 个库(见下文)教会我们一件事:用别人的轮子不是偷懒,而是把时间投资在真正创造价值的地方。

如果你也厌倦了重复解决已被完美解决的问题,是时候升级你的工具箱了。

1. Rich — CLI ≠ 丑陋

还记得以前命令行输出看起来像 Windows 95 那样的样式吗?Rich 可以解决这个问题——而且是样式化的。

只需一次导入,即可让终端输出看起来像在 Figma 中设计的那样。表格、Markdown 渲染、语法高亮的回溯、毫无压力的进度条……简直让人欲罢不能。

from rich.console import Consoleconsole = Console()console.print("Hello, [bold magenta]world[/bold magenta]!")
  • 用途:不会让你眼花缭乱的日志。🧠
  • 提示:rich.traceback.install()用华丽、上下文丰富的回溯替换丑陋的 Python 回溯 - 无需额外工作。

2. Typer — 构建优质 CLI 的最快方法

不再使用argparse……,我推荐使用 Typer。

Typer 基于 Click 构建,使用函数签名和类型提示构建命令行界面 (CLI) 变得非常简单。只需添加文档字符串,基本上就能编写帮助命令了。

import typerdefmain(name: str):    typer.echo(f"Hello {name}")if __name__ == "__main__":    typer.run(main)
  • 用途:在 5 分钟内创建完善的 CLI 工具。
  • Typer提示 = 更好的自动完成和文档 = 更少的--help time。

3. Pendulum — datetime会背刺你

有没有试过在 Python 中对两个日期时间进行减法运算,结果却……很奇怪?没错,就是这种感觉。 Pendulum 就是这样一款可直接替代 datetime 的软件,它能像成年人一样处理时区、格式化、持续时间和运算。

import pendulumdt = pendulum.now("UTC").add(days=3)print(dt.to_datetime_string())
  • 用途:调度脚本、操控时区或应对夏令时。
  • Pendulum 可以在多种语言环境中解析人类可读的时间字符串,例如“下周四下午 5 点”。

4. Pydantic — 无需繁琐的强类型

我以前都是手动验证 JSON 的。(别评判。)后来我发现了 Pydantic。定义一个带类型提示的类,然后就搞定了——验证、记录、解析。

from pydantic import BaseModelclassUser(BaseModel):    id: int    name: str    is_active: bool = True
  • 用途:验证 API 响应、配置和输入数据。
  • 注意:它之所以成为 FastAPI 的支柱,是有原因的。但即使在 Web 世界之外?它仍然是一个颠覆性的力量。

5. Faker——真实数据混乱且可能违法

无论你是在模拟 API、播种开发数据库,还是仅仅试图生成令人信服的虚假用户资料(希望不是出于不可告人的原因),Faker 都能满足你的需求。

from faker import Fakerfake = Faker()print(fake.name(), fake.email(), fake.address())
  • 用途:创建个性化的虚拟数据。😂
  • 试试生成海盗名字。相信我。

6. Tqdm — 为不耐烦的人设计的进度条

你可能之前见过这个。但如果你不经常用它,我们得聊聊。

Tqdm 可以包装任何可迭代对象,并显示智能且响应迅速的进度条。非常适合循环、下载或监控大型作业,避免程序静默卡顿。

from tqdm import tqdmfor i in tqdm(range(10000)):pass
  • 用于:所有耗时超过 0.5 秒的事情。
  • 提示:帮助你尽早捕获无限循环。

7. Requests-HTML — 轻松抓取网页

我喜欢requests。我可以忍受BeautifulSoup。但是requests-html?

它结合了请求的简洁性和无头浏览器的解析能力。它还能执行 JavaScript!这意味着你终于可以安心地抓取现代网页了。

from requests_html import HTMLSessionsession = HTMLSession()r = session.get('https://example.com')r.html.render()print(r.html.find('h1')[0].text)
  • 用途:抓取讨厌传统解析器的网站。
  • 它底层使用了 Pyppeteer。使用 Python 进行 JS 渲染——无需担心 Selenium 带来的困扰。

8. Loguru — 轻松记录日志

Python 默认的日志记录功能……冗长,而且不直观。Loguru 的出现,让日志记录看起来就像在写日记一样——只不过它有日志级别、文件轮换和彩色输出。

from loguru import loggerlogger.add("debug.log", rotation="1 MB")logger.info("Processing started...")
  • 用途:调试、生产日志和更好的睡眠。
  • 一行代码即可替换低级的print() 和配置完整的日志系统。
长按或扫描下方二维码,免费获取 Python公开课和大佬打包整理的几百G的学习资料,内容包含但不限于Python电子书、教程、项目接单、源码等等

推荐阅读

9 个神仙 Python 库,自动化直接开挂

Docker 构建流程详解:从一堆代码,到一个能跑的容器,Docker 到底干了啥?

Python 3.15那些没有被广泛关注但实用的新特性

30个极简Python代码,拿走即用

点击 阅读原文 了解更多

最新文章

随机文章