来源:网络
我还记得那个深夜,我本来只是想“试试”一个新的 Python 库。计划?简单试一下。现实?我写到天都亮了,还在不停地给一个压根没打算做的工具加功能。这就是 Python 的魔力,它不只是个编程语言,简直是个让人沉迷的兔子洞,停不下来地折腾。
过去四年,我烧掉了无数个周末,凌晨三点还在修代码,做了比我愿意承认的还要多的 side projects,全因为我发现了几个像是作弊码一样的库。它们不只是省时间,简直让我想把一切都自动化。
以下是 12 个让我上瘾、停不下来建项目的 Python 库。
1. TQDM:让你感觉像黑客的进度条
看着进度条在屏幕上滑过,真的有种满足感。有了 tqdm,再无聊的循环都变得像电影一样。
from tqdm import tqdm
import time
for i in tqdm(range(100)):
time.sleep(0.05)
我第一次用
tqdm 是在一个文件复制脚本里,纯粹好玩。然后就停不下来了。现在我每个耗时长的脚本都有个酷炫的进度条。它上瘾的地方在于即时反馈,相信我,一旦用上,你再也不会忍受没有进度条的循环。
2. Arrow:轻松搞定日期和时间
以前我一想到处理 Python 的日期时间就头疼。时区、格式、解析……简直一团乱。然后我发现了 arrow。
import arrow
dt = arrow.utcnow()
print(dt.shift(hours=5).format('YYYY-MM-DD HH:mm'))
突然间,处理时间变得毫无压力。我开始自动化提醒、安排备份,甚至写了个自动用时间戳重命名文件的脚本。如果你也跟 datetime 较过劲,arrow 就像一股清风。
3. Faker:假数据也能逼真
在我第一个 Django 项目里,我需要测试用户。总不能一直复制粘贴“John Doe”一百次吧?然后我发现了 faker。
from faker import Faker
fake = Faker()
for _ in
range(3):
print(fake.name(), fake.email())
接下来,我开始用假地址、信用卡、公司名填充整个数据库。突然间,测试变得不再无聊,反而有趣了。
4. Fire:把脚本变成命令行工具
我写过一个清理笔记本上重复文件的脚本。后来我想用不同参数运行它,但不想每次都改代码。于是发现了 fire。
import fire
def
greet(name="World"):
return f"Hello {name}!"
if __name__ == '__main__':
fire.Fire(greet)
一行代码,你的脚本就变成了一个完整的命令行工具。这个小发现让我开始为所有自动化任务写 mini-CLIs。
5. Playwright Sync:网页自动化不抓狂
好吧,Selenium 很强大,但用着真想抓狂。后来我试了
Playwright sync,顺滑得像黄油一样的浏览器自动化。
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page()
page.goto("https://example.com")
print(page.title())
我从抓狂变成了沉迷。先是爬网页,然后自动填表,再到测试我自己的应用。突然间,浏览器不再是障碍,而是游乐场。
6. PyInputPlus:更聪明的用户输入
你有没有写过 CLI 脚本,结果用户总在提示框里输入乱七八糟的东西?我遇到过。PyInputPlus 解决了这个问题。
import pyinputplus as pyip
age = pyip.inputInt("Enter your age: ", min=1)
print(f"You are {age}
years old.")
不用自己写验证逻辑,这个库帮你搞定。听起来小,但让 CLI 工具变得牢不可破。
7. PDFPlumber:PDF 也能听话
我曾经需要从一个 200 页的 PDF 报告里提取表格。手动复制?不可能。正则表达式?噩梦一场。然后我发现了 PDFplumber。
import pdfplumber
with pdfplumber.open("report.pdf") as pdf:
first_page = pdf.pages[0]
text = first_page.extract_text()
print(text)
本来只是个一次性项目,结果我开始建 PDF 搜索工具、自动摘要脚本,甚至发票分析器。
8. Tenacity:重试到成功为止
API 会挂,网络会断。没有重试,脚本就崩了。有了 tenacity,重试变得毫无压力。
from tenacity import retry, stop_after_attempt
import random
@retry(stop=stop_after_attempt(3))
def flaky_task():
if random.random() 0.7:
raise Exception("Failed!")
return "Success!"
print(flaky_task())
这个库在我一个爬虫项目里救了我,那网站老是随机掉线。没啥挫败感了,交给 tenacity 去重试就行。
9. IceCream:调试也能很酷
打印调试被低估了。但用 icecream,它变得让人上瘾。
from icecream import ic
x = 42
ic(x * 2)
它会打印表达式和值。我从到处撒 print(),变成了真的享受调试。
10. Schedule:自动化你的生活
我用 schedule 做了第一个 cron 替代品。简单、可读,让自动化脚本变得轻松。
import schedule, time
def job():
print(
"Running task...")
schedule.every(10).seconds.do(job)
while True:
schedule.run_pending()
time.sleep(1)
我从备份开始,然后是提醒,再到健康检查。没多久,我的电脑就像个私人助理,跑着一堆 mini daemons。
11. Humanize:让数字会说话
原始数字很无聊。Humanize 让它们变得可读。
import humanize
print(humanize.intcomma(1234567))
print(humanize.naturaltime(3600))
我第一次在日志脚本里用它。突然间,日志从晦涩变得清晰。你不再看到“3600秒”,而是“一个小时前”。
12. PyWhatKit:自动化像魔法
想用 Python 发 WhatsApp 消息?或者播放 YouTube 视频?PyWhatKit 一行代码搞定。
import pywhatkit
pywhatkit.playonyt("Python automation tutorials")
有一晚我写了个脚本,每天早上 9 点通过 WhatsApp 给我发随机的励志名言。半开玩笑半认真,但它真跑起来了。
总结
这些库不只是让我更高效,它们让编码变得鲜活。每发现一个库,我就忍不住建了个没计划过的东西。这就是 Python 的魅力:它的生态系统推着你去实验、去自动化、去折腾,直到你造出新东西。
我的建议:今晚挑一个库,拿它做个“傻乎乎”的项目。傻项目总有办法变成聪明的主意,你会学到比预期更多的东西。