当前位置:首页>python>5个实用的Python小工具代码

5个实用的Python小工具代码

  • 2026-10-11 06:13:24
5个实用的Python小工具代码

1. 桌面文件自动整理管家

下载文件夹乱成一团?写个脚本按类型自动归到「图片 / 文档 / 视频 / 压缩包」子目录,从此不用手动拖。纯标准库,零安装。

import osimport shutiltarget = r"C:\Users\admin\Downloads"# 改成你要整理的文件夹rules = {"图片":   [".jpg", ".jpeg", ".png", ".gif", ".webp"],"文档":   [".pdf", ".doc", ".docx", ".txt", ".xlsx", ".pptx"],"视频":   [".mp4", ".mov", ".avi", ".mkv"],"压缩包": [".zip", ".rar", ".7z", ".tar"],"音乐":   [".mp3", ".wav", ".flac"],}for name in os.listdir(target):    path = os.path.join(target, name)ifnot os.path.isfile(path):continue    ext = os.path.splitext(name)[1].lower()for folder, exts in rules.items():if ext in exts:            dest = os.path.join(target, folder)            os.makedirs(dest, exist_ok=True)            shutil.move(path, os.path.join(dest, name))            print(f"已移动:{name} -> {folder}")breakprint("整理完成!")

2. 把多张图拼成一张长图

截图、九宫格照片想拼成一张竖长图发朋友圈?几行 Pillow 自动排版,统一宽度首尾相接。(需 pip install pillow)

import osfrom PIL import Imagesrc = "images"files = [f for f in os.listdir(src)if f.lower().endswith((".png", ".jpg", ".jpeg"))]imgs = [Image.open(os.path.join(src, f)).convert("RGB") for f in files]width = max(im.width for im in imgs)          # 统一宽度取最宽的那张resized = []for im in imgs:    h = int(im.height * width / im.width)      # 等比缩放    resized.append(im.resize((width, h)))total_h = sum(im.height for im in resized)long_img = Image.new("RGB", (width, total_h), (255, 255, 255))y = 0for im in resized:    long_img.paste(im, (0, y))    y += im.heightlong_img.save("long_image.png")print(f"已生成 long_image.png,共拼了 {len(resized)} 张")

3. 把文字变成语音听书

长文章懒得看?pyttsx3 本地离线把文字念出来存 mp3,不联网不花钱。(需 pip install pyttsx3)

import pyttsx3engine = pyttsx3.init()# 尽量挑一个中文嗓音voices = engine.getProperty("voices")for v in voices:if"chinese"in v.name.lower() or"zh"in v.id.lower():        engine.setProperty("voice", v.id)breakengine.setProperty("rate", 150)    # 语速,数字越小越慢engine.setProperty("volume", 1.0)  # 音量 0~1text = "你好,这是用 Python 把文字变成语音的演示,换成任何内容都能念。"engine.save_to_file(text, "speech.mp3")engine.runAndWait()print("语音已保存为 speech.mp3")

4. 盯住网页变化,变了就发邮件提醒

抢票、等补货、盯活动页,脚本替你蹲,页面出现关键词就发邮件通知。(需 pip install requests)

import timeimport smtplibimport requestsfrom email.mime.text import MIMETextURL = "https://example.com/product"# 要盯的页面KEYWORD = "现货"# 出现这个词就提醒defsend_mail(body):    s = smtplib.SMTP("smtp.qq.com", 587)    s.starttls()    s.login("你的邮箱@qq.com", "邮箱授权码")    m = MIMEText(body)    m["Subject"] = "网页变动提醒"    m["From"] = "你的邮箱@qq.com"    m["To"] = "收件人@example.com"    s.sendmail("你的邮箱@qq.com", "收件人@example.com", m.as_string())    s.quit()whileTrue:    html = requests.get(URL, timeout=10).textif KEYWORD in html:        send_mail(f"{URL} 出现了「{KEYWORD}」,快去看看!")        print("已发送提醒邮件")break    time.sleep(600)   # 每 10 分钟查一次

5. 揪出重复文件给硬盘腾空间

同一个文件存了好几份?算 md5 哈希,一样的就是重复,列出来手动删。纯标准库,零安装。

import osimport hashlibfolder = "photos"# 要检查的文件夹seen = {}dups = []for root, _, files in os.walk(folder):for f in files:        path = os.path.join(root, f)        h = hashlib.md5()with open(path, "rb") as fp:for chunk in iter(lambda: fp.read(8192), b""):                h.update(chunk)        key = h.hexdigest()if key in seen:            dups.append(path)else:            seen[key] = pathif dups:    print("发现重复文件,可删除:")for d in dups:        print(d)else:    print("没有重复文件")

这 5 个工具胜在「用得上」——整理、拼图、听书、蹲网页、清重复,都是每天可能碰到的琐事。挑一个最戳你的先跑起来,改改路径和参数,它就成了你自己的小工具。

最新文章

随机文章