Python有哪些冷门但好用的库?10个隐藏库推荐
Python 有哪些冷门但好用的库?10 个隐藏神器推荐
Python 的生态系统庞大到令人咋舌,大家耳熟能详的 NumPy、Pandas、Requests、Django 这些大佬级库几乎每个人都在用,但真正能让你效率翻倍的,往往是那些“冷门”却实用到爆炸的库。这些库可能 GitHub Star 不高、社区讨论少,但一旦上手,你会后悔为什么没早点发现。
今天我精选了 10 个真正冷门、好用、2025 年依然活跃的 Python 库,涵盖开发效率、数据处理、CLI、自动化、时间处理等多个场景。每个库都配了简单介绍、安装方式、核心用法和实际场景,值得你直接复制进项目!
1. Rich - 让终端输出美如画
Rich 能让你的 Python 脚本在命令行里显示彩色、表格、进度条、Markdown、JSON 美化,甚至 Emoji 和树形结构。比 print() 高级 10 倍。
安装:pip install rich
用法示例:
from rich.console import Console
from rich.table import Table
console = Console()
table = Table(title="用户列表")
table.add_column("姓名")
table.add_column("年龄")
table.add_row("张三", "28")
console.print(table)
场景:写 CLI 工具、调试日志、脚本输出时用 Rich,瞬间高端大气。
2. Pendulum - 时间处理的神器
Python 自带的 datetime 模块太难用了,Pendulum 完全取代它,支持人性化时间、人性化时区、相对时间、时间跨度计算,超级丝滑。
安装:pip install pendulum
用法示例:
import pendulum
now = pendulum.now("Asia/Shanghai")
print(now.add(days=1).to_date_string()) # 明天日期
print(now.diff_for_humans()) # "刚刚"
print(now.start_of("month")) # 本月第一天
场景:任何涉及时间计算的项目,尤其是爬虫、日志、定时任务。
3. Faker - 假数据生成专家
测试、演示、填充数据库时需要海量假数据?Faker 一行代码生成姓名、地址、电话、邮箱、信用卡号、文章等各种假数据,还支持中文!
安装:pip install faker
用法示例:
from faker import Faker
fake = Faker("zh_CN")
print(fake.name()) # 王晓明
print(fake.address()) # 北京市朝阳区三里屯路 123 号
print(fake.phone_number()) # 13800138000
场景:单元测试、Mock 数据、原型演示。
4. Missingno - 数据缺失值可视化
Pandas 处理缺失值时,df.isnull().sum() 太原始。Missingno 一行代码画出缺失值矩阵、热图、条形图,直观到飞起。
安装:pip install missingno
用法示例:
import missingno as msno
import pandas as pd
df = pd.read_csv("data.csv")
msno.matrix(df) # 缺失值矩阵
msno.bar(df) # 缺失值条形图
场景:数据清洗、EDA 阶段必备。
5. Typer - 现代 CLI 工具框架
Typer 基于 Click,但更现代、更简洁,用类型提示自动生成命令行参数、帮助文档、自动补全。FastAPI 作者亲儿子。
安装:pip install typer
用法示例:
import typer
app = typer.Typer()
@app.command()
def greet(name: str = "World"):
typer.echo(f"Hello {name}!")
if __name__ == "__main__":
app()
场景:写命令行工具、自动化脚本,比 argparse 舒服 100 倍。
6. Polars - Pandas 的高速替代
Pandas 在大表上很慢?Polars 用 Rust 实现,多线程,速度快 5-100 倍,语法几乎一样。
安装:pip install polars
用法示例:
import polars as pl
df = pl.read_csv("data.csv")
result = df.filter(pl.col("age") > 30).group_by("city").agg(pl.col("salary").mean())
场景:大数据分析、ETL、性能敏感项目。
7. FlashText - 超快关键词替换
传统正则或 str.replace() 在海量文本上很慢,FlashText 速度与文本量无关,常用于敏感词过滤、关键词高亮。
安装:pip install flashtext
用法示例:
from flashtext import KeywordProcessor
processor = KeywordProcessor()
processor.add_keywords_from_dict({"Python": "Python3", "AI": "人工智能"})
text = "I love Python and AI!"
print(processor.replace_keywords(text)) # I love Python3 and 人工智能!
场景:文本清洗、内容审核、搜索优化。
8. FuzzyWuzzy - 模糊字符串匹配
Levenshtein 距离、比率计算,轻松处理拼写错误、近似匹配。
安装:pip install fuzzywuzzy python-Levenshtein(加速版)
用法示例:
from fuzzywuzzy import fuzz, process
print(fuzz.ratio("苹果手机", "iPhone")) # 相似度
choices = ["苹果手机", "香蕉", "梨"]
print(process.extract("iPhone", choices)) # 提取最相似的
场景:数据去重、搜索纠错、实体匹配。
9. Imbalanced-learn - 处理不平衡数据集
机器学习中常见类别不均衡,imbalanced-learn 提供过采样、欠采样、SMOTE 等一站式解决方案。
安装:pip install imbalanced-learn
用法示例:
from imblearn.over_sampling import SMOTE
from sklearn.datasets import make_classification
X, y = make_classification(n_samples=1000, n_classes=2, weights=[0.9, 0.1])
smote = SMOTE()
X_res, y_res = smote.fit_resample(X, y)
场景:分类任务、欺诈检测、医疗诊断。
10. Diagrams - 纯代码画架构图
不用 Visio、Draw.io,直接 Python 代码画 AWS、Azure、Kubernetes 等架构图。
安装:pip install diagrams
用法示例:
from diagrams import Diagram
from diagrams.aws.compute import EC2
from diagrams.aws.database import RDS
with Diagram("Web 架构", filename="web.png"):
EC2("Web Server") >> RDS("Database")
场景:文档、博客、PRD 里画系统架构图,版本控制友好。
总结
这些库大多不到 100MB,安装快、依赖少,却能解决日常痛点。强烈建议你现在就挑 2-3 个装起来试试,很快你就会发现:原来 Python 还能这么玩!
你最喜欢哪个?或者你还有其他冷门神器?欢迎评论区交流~
最后,祝大家代码无 Bug,项目早日上线! 🚀
浙公网安备 33010602011771号