page contents

这6个Python代码我天天在用,今天一次性公开!

很多人学 Python 卡在「学完不知道用来干嘛」。下面 6 个脚本选的都是能立刻上手、立刻省事的场景:批量生成验证码图片、对比两个文件夹的差异、把 PDF 拆成图片、用代码放音乐、给命令行加上进度条和颜色、批量处理压缩包。代码短、依赖清晰,复制回去改改路径就能跑。

attachments-2026-08-aDiH3Woh6a7e6ebc6f1f7.png很多人学 Python 卡在「学完不知道用来干嘛」。下面 6 个脚本选的都是能立刻上手、立刻省事的场景:批量生成验证码图片、对比两个文件夹的差异、把 PDF 拆成图片、用代码放音乐、给命令行加上进度条和颜色、批量处理压缩包。代码短、依赖清晰,复制回去改改路径就能跑。

1. 批量生成验证码图片

做测试、教学演示经常需要一批带噪点的验证码图。用 Pillow 几行就能生成,文字随机、噪点随机。

(需 pip install pillow)

from PIL import Image, ImageDraw, ImageFont
import random, string

def gen_captcha(text=None, out="captcha.png", w=120, h=40):
    text = text or "".join(random.choices(string.ascii_uppercase + string.digits, k=4))
    img = Image.new("RGB", (w, h), (240, 240, 240))
    draw = ImageDraw.Draw(img)
    font = ImageFont.load_default()
    draw.text((10, 10), text, fill=(20, 20, 20), font=font)
    for _ in range(60):                       # 加噪点,干扰机器识别
        draw.point((random.randint(0, w), random.randint(0, h)),
                   fill=(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)))
    img.save(out)
    return text

print("验证码内容:", gen_captcha())

小提示:想批量出图,循环调用并换文件名即可;load_default 字体偏素,可换成系统字体路径提升观感。

2. 对比两个文件夹的差异

改了一版代码或文档,想快速知道哪份是旧的、哪份被改过,用 filecmp 比对目录最省心,标准库就能做。

(标准库,无需安装)

import filecmp, os

def diff_folders(a, b):
    left = set(os.listdir(a))
    right = set(os.listdir(b))
    print("仅在", a, "中:", left - right)
    print("仅在", b, "中:", right - left)
    for name in left & right:
        pa, pb = os.path.join(a, name), os.path.join(b, name)
        if os.path.isfile(pa) and os.path.isfile(pb):
            if not filecmp.cmp(pa, pb, shallow=False):
                print("内容不同:", name)

diff_folders("v1", "v2")

小提示:shallow=False 会比对真实字节;两套目录结构一致时输出最直观,适合做版本核对。

3. 把 PDF 拆成图片

有些 PDF 不能直接复制文字,或者你想把某一页插进 PPT、做成配图,先把它转成图片最方便。

(需 pip install pymupdf)

import fitz, os

def pdf_to_images(pdf_path, out_dir="pages"):
    os.makedirs(out_dir, exist_ok=True)
    doc = fitz.open(pdf_path)
    for i, page in enumerate(doc):
        pix = page.get_pixmap(dpi=150)
        pix.save(f"{out_dir}/page_{i + 1}.png")
    print(f"已导出 {doc.page_count} 页到 {out_dir}/")

pdf_to_images("demo.pdf")

小提示:dpi 越大越清晰也越占空间;扫描版 PDF 转图后可直接做 OCR 或插图。

4. 用代码放音乐

工作间隙想听首歌,不想被播放器弹窗打扰,写个最小播放器,一行加载、一行播放。

(需 pip install pygame)

import pygame

def play_music(path):
    pygame.mixer.init()
    pygame.mixer.music.load(path)
    pygame.mixer.music.play()
    while pygame.mixer.music.get_busy():
        pass

play_music("song.mp3")

小提示:pygame 适合本地 mp3 / wav 播放;若要图形界面选歌,可结合 tkinter 做文件选择框一起用。

5. 给命令行加上进度条和颜色

跑长任务时,黑底白字干等很没底。用 colorama 让进度条上色、关键步骤高亮,体验立刻不一样。

(需 pip install colorama)

from colorama import Fore, Style, init
import time

init()                       # Windows 下启用颜色,必须调用一次

def progress(n):
    for i in range(1, n + 1):
        pct = i / n
        bar = "█" * int(pct * 30)
        print(f"\r{Fore.GREEN}{bar:<30}{Style.RESET_ALL} {int(pct * 100)}%", end="")
        time.sleep(0.1)
    print(f"\n{Fore.CYAN}完成{Style.RESET_ALL}")

progress(20)

小提示:Fore.RED 标错误、Fore.YELLOW 标警告;Style.RESET_ALL 必须加,否则颜色会串到下一行。

6. 批量解压与打包压缩包

下载了一堆 zip,或者要把项目文件夹打成包发出去,用标准库的 zipfile 批量处理,不用装任何东西。

(标准库,无需安装)

import zipfile, os, glob

def unzip_all(folder):
    for z in glob.glob(os.path.join(folder, "*.zip")):
        out = z[:-4]
        with zipfile.ZipFile(z) as f:
            f.extractall(out)
        print("已解压:", z)

def zip_folder(folder, name=None):
    name = name or folder + ".zip"
    with zipfile.ZipFile(name, "w", zipfile.ZIP_DEFLATED) as z:
        for root, _, files in os.walk(folder):
            for f in files:
                p = os.path.join(root, f)
                z.write(p, os.path.relpath(p, folder))
    print("已打包:", name)

unzip_all("downloads")
# zip_folder("project")

小提示:extractall 会覆盖同名文件,解压前确认目标目录为空;打包大文件夹时 ZIP_DEFLATED 比默认存储更省空间。

这 6 个脚本覆盖了图像生成、文件比对、文档转换、媒体播放、命令行体验和压缩包处理几个方向。挑一个你当下最需要的先跑,把示例路径换成自己的,它就成了顺手的专属工具。

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

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

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

 

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Pack
Pack

2315 篇文章

作家榜 »

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