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