Py学习  »  Python

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

数据STUDIO • 4 天前 • 77 次点击  


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

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

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

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

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

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

1. Rich — CLI ≠ 丑陋

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

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

推荐阅读:

强推这个 Python 库,把终端玩出花儿了

专属Python开发者的完美终端工具!

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 的软件,它能像成年人一样处理时区、格式化、持续时间和运算。

推荐阅读:Datetime 最强平台替 python库 --  Pendulum

import pendulum

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

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

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

推荐阅读:墙裂推荐一个 Python 神库--Pydantic

from pydantic import BaseModel

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

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

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

推荐阅读:推荐七个 Python 效率工具

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

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

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

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

推荐阅读:Python制作进度条,原来有这么多方法!

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 的出现,让日志记录看起来就像在写日记一样——只不过它有日志级别、文件轮换和彩色输出。

推荐阅读:强强联手!Loguru 和 Pydantic 设置 Python 日志

from loguru import logger

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

推荐阅读:
2025 超现代 Python 实用工具(1) 
2025 超现代 Python 实用工具(2)

🏴‍☠️宝藏级🏴‍☠️ 原创公众号『数据STUDIO』内容超级硬核。公众号以Python为核心语言,垂直于数据科学领域,包括可戳👉 PythonMySQL数据分析数据可视化机器学习与数据挖掘爬虫 等,从入门到进阶!

长按👇关注- 数据STUDIO -设为星标,干货速递

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/184191
 
77 次点击