社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

这 12 个 Python 小工具库很加分!

AirPython • 8 月前 • 194 次点击  

来源:网络


我还记得那个深夜,我本来只是想“试试”一个新的 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 的魅力:它的生态系统推着你去实验、去自动化、去折腾,直到你造出新东西。

我的建议:今晚挑一个库,拿它做个“傻乎乎”的项目。傻项目总有办法变成聪明的主意,你会学到比预期更多的东西。

图片



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/187851