当前位置:首页>python>效率翻倍:7 个拿来即用的 Python 脚本,把重复劳动交给电脑

效率翻倍:7 个拿来即用的 Python 脚本,把重复劳动交给电脑

  • 2026-10-11 06:11:58
效率翻倍:7 个拿来即用的 Python 脚本,把重复劳动交给电脑

日常工作里,大量时间耗在"重复、机械、可预期"的小事上:找一份文档、把笔记发出去、久坐忘了休息、给图片加水印……这些事不需要聪明,只需要有人替你按时按点做。下面这 7 个 Python 脚本,代码完整、依赖常见,复制回去改改路径就能跑,把琐事一次性自动化。

每个脚本都遵循同一个结构:先说它能解决什么,再给完整代码,最后附一句实用提示。建议挑最戳你的那一两个先跑起来,比一次性全装更有成就感。

1. 给电脑文件装一个本地搜索引擎

系统自带的搜索经常找不到内容,用 whoosh 给指定文件夹建索引,之后输入关键词就能列出所有命中文件。配合 jieba 中文分词,中文搜索也准确。

(需 pip install whoosh jieba)

from whoosh.index import create_in, open_dir
from whoosh.fields import Schema, TEXT, ID
from whoosh.qparser import QueryParser
from jieba.analyse import ChineseAnalyzer
import os

defbuild_index(folder="docs", indexdir="index"):
ifnot os.path.exists(indexdir):
        os.mkdir(indexdir)
    schema = Schema(path=ID(stored=True), content=TEXT(analyzer=ChineseAnalyzer()))
    ix = create_in(indexdir, schema)
    writer = ix.writer()
for root, _, files in os.walk(folder):
for f in files:
if f.endswith((".txt", ".md")):
                p = os.path.join(root, f)
with open(p, encoding="utf-8", errors="ignore") as fp:
                    writer.add_document(path=p, content=fp.read())
    writer.commit()

defsearch(q, indexdir="index", top=10):
    ix = open_dir(indexdir)
with ix.searcher() as s:
for r in s.search(QueryParser("content", ix.schema).parse(q), limit=top):
            print(r["path"])

build_index("docs")     # 首次建索引
search("Python 教程")   # 之后随时搜

小提示:索引只读取 .txt / .md,要搜 PDF、Word 需先提取文本;文件较多时首次建索引会稍慢,属正常现象,之后搜索都是秒回。

2. 把 Markdown 笔记一键变成可分享网页

写好的多篇 Markdown 笔记,用 markdown 库转成带样式的 HTML,自动合并、加好排版,发给别人直接就是个干净页面,不用对方装任何软件。

(需 pip install markdown)

import markdown, glob

CSS = """
body{max-width:760px;margin:40px auto;padding:0 20px;
font-family:-apple-system,"Microsoft YaHei",sans-serif;line-height:1.8;color:
#222}
pre{background:#f6f8fa;padding:16px;border-radius:6px;overflow:auto}
code{font-family:Consolas,Menlo,monospace}
h1{border-bottom:2px solid #eee;padding-bottom:8px}
"""

defbuild(book_dir, out="notebook.html"):
    parts = []
for f in sorted(glob.glob(f"{book_dir}/*.md")):
with open(f, encoding="utf-8") as fp:
            parts.append(markdown.markdown(
                fp.read(), extensions=["fenced_code", "tables"]))
    html = f"<html><head><meta charset='utf-8'><style>{CSS}</style></head><body>" \
           + "".join(parts) + "</body></html>"
with open(out, "w", encoding="utf-8") as fp:
        fp.write(html)
return out

build("notes", "notebook.html")

小提示:CSS 已内置基础排版,想换字体或配色,直接改 CSS 字符串即可;extensions 还支持 toc 自动生成目录,长文档尤其好用。

3. 久坐提醒小挂件:每 20 分钟弹窗护眼

长时间盯屏幕伤眼,用 tkinter 做个常驻提醒:每隔设定分钟弹出一个小窗,提示看远处休息,5 秒后自动消失。tkinter 是 Python 自带,零额外安装。

import tkinter as tk
import threading, time

def_popup():
    root = tk.Tk()
    root.title("护眼提醒")
    root.geometry("320x120")
    root.resizable(False, False)
    tk.Label(root, text="该休息啦,看远处 20 秒 👀",
             font=("Microsoft YaHei", 14)).pack(expand=True)
    root.after(5000, root.destroy)
    root.mainloop()

defremind(interval=20):
whileTrue:
        time.sleep(interval * 60)
        threading.Thread(target=_popup).start()

# remind(20)   # 每 20 分钟提醒一次,取消注释后运行

小提示:弹窗用独立线程触发,脚本可一直挂在后台;想开机自动运行,把脚本快捷方式放进系统"启动"目录即可。

4. 一行起一个本地文件服务器,手机电脑互传

不用 U 盘、不用网盘,Python 自带的 http.server 一行就能把任意文件夹变成网页,同一 WiFi 下的手机、电脑直接访问下载。零依赖、不联网外传,文件始终在你自己机器上。

import http.server, socketserver, os

defshare(folder=".", port=8000):
    os.chdir(folder)
    handler = http.server.SimpleHTTPRequestHandler
with socketserver.TCPServer(("", port), handler) as httpd:
        print(f"已在 http://本机IP:{port} 启动,同一 WiFi 设备可访问")
        httpd.serve_forever()

# share(".", 8000)   # 分享当前文件夹,端口 8000

小提示:服务仅监听本机端口,文件不经过任何第三方;用完记得 Ctrl+C 关闭,避免端口长期暴露。手机访问时把"本机IP"换成电脑在局域网里的实际 IP(如 192.168.x.x)。

5. 自动填表机器人:批量录单解放双手

面对网页或软件的重复录入,用 pyautogui 模拟键鼠:从 CSV 读数据,自动敲字、跳格、回车,把人从机械录单里解放出来。运行前留 3 秒切到目标窗口即可。

(需 pip install pyautogui)

import pyautogui, csv, time

deffill(rows_csv="data.csv", start_delay=3):
    time.sleep(start_delay)   # 切到目标录入窗口
with open(rows_csv, encoding="utf-8") as f:
for name, phone in list(csv.reader(f))[1:]:   # 跳过表头
            pyautogui.write(name);   pyautogui.press("tab")
            pyautogui.write(phone);  pyautogui.press("tab")
            pyautogui.press("enter")
            time.sleep(0.5)

# fill("data.csv")

小提示:运行前务必先手动走一遍录入流程,确认输入框顺序和代码里的 tab 节奏一致;速度可按需调大 time.sleep,首次建议调慢些观察效果。

6. 屏幕取色器:随手拿到任意像素的颜色值

做图、配色、仿色时常要取某个点的颜色。用 PIL 的屏幕截取配合 tkinter,按回车就能读出鼠标所在位置的颜色,十六进制和 RGB 同时给出。

(需 pip install pillow,tkinter 自带)

from PIL import ImageGrab
import tkinter as tk

defpicker():
    root = tk.Tk()
    root.attributes("-topmost", True)
    root.geometry("260x90")
    label = tk.Label(root, text="移动鼠标到目标处,按回车取色",
                     font=("Microsoft YaHei", 11))
    label.pack(pady=12)
defsnap(event=None):
        x, y = root.winfo_pointerxy()
        r, g, b = ImageGrab.grab().getpixel((x, y))
        label.config(text=f"#{r:02X}{g:02X}{b:02X}  RGB({r},{g},{b})")
        print(f"位置({x},{y})  #{r:02X}{g:02X}{b:02X}")
    root.bind("<Return>", snap)
    root.mainloop()

# picker()

小提示:窗口置顶显示,方便对照;读到的颜色可直接粘进设计软件或代码,做品牌色、配色方案时特别顺手。

7. 图片批量加水印,保护原创

发出去的图片最好带上署名,手动加太慢。用 Pillow 给整个文件夹的图片右下角统一盖上半透明水印,一次处理几十张。

(需 pip install pillow)

from PIL import Image, ImageDraw, ImageFont
import os, glob

defwatermark(folder="images", text="© 你的名字", out="watermarked"):
    os.makedirs(out, exist_ok=True)
    font = ImageFont.truetype("msyh.ttc", 28)   # Windows 微软雅黑
for path in glob.glob(f"{folder}/*.jpg") + glob.glob(f"{folder}/*.png") + glob.glob(f"{folder}/*.jpeg"):
        img = Image.open(path).convert("RGBA")
        layer = Image.new("RGBA", img.size, (0, 0, 0, 0))
        d = ImageDraw.Draw(layer)
        w, h = img.size
        d.text((w - 20, h - 20), text, font=font,
               fill=(255, 255, 255, 140), anchor="rb")
        Image.alpha_composite(img, layer).convert("RGB").save(
f"{out}/{os.path.basename(path)}")
        print(f"已加水印:{os.path.basename(path)}")

# watermark("images", "© C先生")

小提示:fill 最后一位是透明度(0 全透明、255 不透明),调小更含蓄;换字体改 truetype 路径即可,Mac 可用 PingFang.ttc。


这 7 个脚本的共同点是"效果立竿见影":有的省时间(搜索、填表),有的省麻烦(笔记变网页、文件互传),有的护健康(久坐提醒),有的护原创(批量水印)。它们都不依赖复杂的运行环境,标准库加一两个常用库就能跑。挑一个顺手的先跑,改改参数,它就是你的专属小工具;等跑顺了,再慢慢把剩下的也用起来。

最新文章

随机文章