page contents

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

你是否是那种‘不造轮子不舒服’的开发者——需要什么功能?现成的库?不存在的,自己撸代码!JSON 转 CSV?命令行仪表盘?‘给我 30 分钟,Vim 里徒手搞定!’
attachments-2025-07-441lNbzU6876fe47f0051.jpg
你是否是那种‘不造轮子不舒服’的开发者——需要什么功能?现成的库?不存在的,自己撸代码!JSON 转 CSV?命令行仪表盘?‘给我 30 分钟,Vim 里徒手搞定!’
而真正的效率不是能写多少代码,而是知道什么时候不该写代码。
就拿最近我最常使用的 Rich 来举例,它只用 3 行代码 就能解决了你过去熬夜调试的终端渲染问题:
日志/调试输出 自动变成带语法高亮的可折叠面板(再也不用 print(json.dumps()) 瞎眼了)
表格数据 从歪歪扭扭的 ┐└─ 符号地狱变成自动对齐+分页的印刷级显示
进度条 自带速度预估、动态宽度调整,甚至支持多任务并行——而我曾经花半天时间写出来的版本,连基本的中断恢复都搞不定
Rich 和其他 7 个库(见下文)教会我们一件事:用别人的轮子不是偷懒,而是把时间投资在真正创造价值的地方。
如果你也厌倦了重复解决已被完美解决的问题,是时候升级你的工具箱了。
1. Rich — CLI ≠ 丑陋
还记得以前命令行输出看起来像 Windows 95 那样的样式吗?Rich 可以解决这个问题——而且是样式化的。
只需一次导入,即可让终端输出看起来像在 Figma 中设计的那样。表格、Markdown 渲染、语法高亮的回溯、毫无压力的进度条……简直让人欲罢不能。
from rich.console import Console
console = Console()
console.print("Hello, [bold magenta]world[/bold magenta]!")
用途:不会让你眼花缭乱的日志。
提示:rich.traceback.install()用华丽、上下文丰富的回溯替换丑陋的 Python 回溯 - 无需额外工作。
2. Typer — 构建优质 CLI 的最快方法
不再使用argparse……,我推荐使用 Typer。
Typer 基于 Click 构建,使用函数签名和类型提示构建命令行界面 (CLI) 变得非常简单。只需添加文档字符串,基本上就能编写帮助命令了。
import typer
def main(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 pendulum
dt = pendulum.now("UTC").add(days=3)
print(dt.to_datetime_string())
用途:调度脚本、操控时区或应对夏令时。
Pendulum 可以在多种语言环境中解析人类可读的时间字符串,例如“下周四下午 5 点”。
4. Pydantic — 无需繁琐的强类型
我以前都是手动验证 JSON 的。(别评判。)后来我发现了 Pydantic。定义一个带类型提示的类,然后就搞定了——验证、记录、解析。
from pydantic import BaseModel
class User(BaseModel):
    id: int
    name: str
    is_active: bool = True
用途:验证 API 响应、配置和输入数据。
注意:它之所以成为 FastAPI 的支柱,是有原因的。但即使在 Web 世界之外?它仍然是一个颠覆性的力量。
5. Faker——真实数据混乱且可能违法
无论你是在模拟 API、播种开发数据库,还是仅仅试图生成令人信服的虚假用户资料(希望不是出于不可告人的原因),Faker 都能满足你的需求。
from faker import Faker
fake = Faker()
print(fake.name(), fake.email(), fake.address())
用途:创建个性化的虚拟数据。
试试生成海盗名字。相信我。
6. Tqdm — 为不耐烦的人设计的进度条
你可能之前见过这个。但如果你不经常用它,我们得聊聊。
Tqdm 可以包装任何可迭代对象,并显示智能且响应迅速的进度条。非常适合循环、下载或监控大型作业,避免程序静默卡顿。
from tqdm import tqdm
for i in tqdm(range(10000)):
    pass
用于:所有耗时超过 0.5 秒的事情。
提示:帮助你尽早捕获无限循环。
7. Requests-HTML — 轻松抓取网页
我喜欢requests。我可以忍受BeautifulSoup。但是requests-html?
它结合了请求的简洁性和无头浏览器的解析能力。它还能执行 JavaScript!这意味着你终于可以安心地抓取现代网页了。
from requests_html import HTMLSession

session = 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 logger

logger.add("debug.log", rotation="1 MB")
logger.info("Processing started...")
用途:调试、生产日志和更好的睡眠。
一行代码即可替换低级的print() 和配置完整的日志系统。

更多相关技术内容咨询欢迎前往并持续关注好学星城论坛了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

  • 发表于 2025-07-16 09:20
  • 阅读 ( 41 )
  • 分类:Python开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
小柒
小柒

2172 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 2172 文章
  3. Pack 1335 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章