当前位置:首页>python>10 个自动化日常任务的 Python 脚本

10 个自动化日常任务的 Python 脚本

  • 2026-09-02 20:30:52
10 个自动化日常任务的 Python 脚本

每天下班回家,你是不是也会干这些事:整理下载的乱七八糟文件、给今天的照片改个名字、把作业打包发给老师…这些事手点一次两次还好,多了真的很烦。 我后来干脆写了 10 个 Python 小脚本,专门干这些“脏活累活”,人只负责开心。

下面这几个都不难,你照着改一改就能用上。

  1. 自动整理下载文件夹

思路很简单:按后缀把文件丢进不同子目录里,比如图片、文档、压缩包。

import os, shutil
from pathlib import Path

base = Path(r"C:\Users\xxx\Downloads")
rules = {
"图片": [".jpg", ".png", ".gif"],
"文档": [".pdf", ".docx", ".pptx", ".txt"],
"压缩": [".zip", ".rar", ".7z"]
}

for f in base.iterdir():
ifnot f.is_file():
continue
    ext = f.suffix.lower()
for folder, exts in rules.items():
if ext in exts:
            target_dir = base / folder
            target_dir.mkdir(exist_ok=True)
            shutil.move(str(f), target_dir / f.name)
break

扔进 python 跑一下,你的 Downloads 当场瘦身。

  1. 批量重命名照片加日期

假设你手机导出来一堆 IMG_1234.JPG,看着就不想整理。脚本帮你统一改成 20250121_001.jpg 这种。

from pathlib import Path
import time

folder = Path(r"C:\pics")
date = time.strftime("%Y%m%d")

for i, f in enumerate(sorted(folder.glob("*.jpg")), start=1):
    new_name = f"{date}_{i:03d}{f.suffix.lower()}"
    f.rename(f.with_name(new_name))

改下 folder 路径就能跑。

  1. 找出占空间的巨无霸文件

硬盘老说满,其实就是几个超大的文件在作妖。让脚本帮你把“罪魁祸首”揪出来。

from pathlib import Path

root = Path(r"D:\")
limit_mb = 500

for f in root.rglob("
*"):
    if f.is_file():
        size_mb = f.stat().st_size / 1024 / 1024
        if size_mb > limit_mb:
            print(f"
{size_mb:8.1f} MB  ->  {f}")

一跑就知道该删谁了。

  1. 一键打包作业/项目发给别人

每次交作业都手动选文件打 zip 很烦,用脚本按时间戳自动打包。

import zipfile, time
from pathlib import Path

src = Path(r"C:\code\homework")
ts = time.strftime("%Y%m%d_%H%M%S")
zip_path = src.parent / f"homework_{ts}.zip"

with zipfile.ZipFile(zip_path, "w", zipfile.ZIP_DEFLATED) as zf:
for f in src.rglob("*"):
if f.is_file():
            zf.write(f, f.relative_to(src))

print("打包完毕:", zip_path)

以后发邮件就直接选最新的那个 zip。

  1. 每日待办事项弹窗提醒(控制台版)

最简单粗暴的版本:把任务写在 todo.txt 里,脚本每天早上读一遍打印出来,你开机顺手跑一下。

from pathlib import Path

todo_file = Path("todo.txt")

if todo_file.exists():
    print("今天要做的事:\n")
    print(todo_file.read_text(encoding="utf-8"))
else:
    print("还没有 todo.txt,先写一点目标吧~")

后面你可以再加上定时任务、桌面通知之类的,就成小工具了。

  1. 自动合并每天生成的日志文件

比如你有一堆 app-2025-01-21.log,想合成一个大日志方便搜索。

from pathlib import Path

log_dir = Path(r"C:\logs")
target = log_dir / "all.log"

with target.open("w", encoding="utf-8") as out:
for f in sorted(log_dir.glob("app-*.log")):
        out.write(f"\n===== {f.name} =====\n")
        out.write(f.read_text(errors="ignore"))

线上排查那种诡异 Bug 的时候,先用脚本把日志合好再分析,会比人肉点文件舒服太多。

  1. 批量把 Excel 转成 CSV

学校/公司经常发一堆 xlsx,需要喂给只认 csv 的系统。

from pathlib import Path
import pandas as pd  # 需要先 pip install pandas openpyxl

folder = Path(r"C:\data\xlsx")

for f in folder.glob("*.xlsx"):
    df = pd.read_excel(f)
    csv_path = f.with_suffix(".csv")
    df.to_csv(csv_path, index=False, encoding="utf-8-sig")
    print("导出:", csv_path)

一键全转,告别手动“另存为”。

  1. 简单图片压缩(给作业/文档减肥)

发 PPT、作业附件太大上传不了,可以先把图片压一压。

from pathlib import Path
from PIL import Image  # pip install pillow

src = Path(r"C:\pics\raw")
dst = Path(r"C:\pics\small")
dst.mkdir(exist_ok=True)

for f in src.glob("*.jpg"):
    img = Image.open(f)
    img.save(dst / f.name, quality=70, optimize=True)

质量 70 一般肉眼看不出差别,体积能小不少。

  1. 快速搭一个“本地搜索”小工具

比如你有一堆 txt 笔记,想搜里面有没有某个关键字。

from pathlib import Path

root = Path(r"C:\notes")
keyword = input("想搜啥:")

for f in root.rglob("*.txt"):
    text = f.read_text(encoding="utf-8", errors="ignore")
if keyword in text:
        print("命中:", f)

虽然比不上专业全文检索,但日常用够了。

  1. 迷你番茄钟(25 分钟专注)

写作业/刷题用这个挺好。

import time

mins = 25
print(f"开始专注 {mins} 分钟…")
time.sleep(mins * 60)
print("时间到!活动一下再继续~")

你可以再配合系统自带的通知音,或者做成小窗口,就很有仪式感。

这 10 个其实都不算“高级算法”,更多是:一点点逻辑(条件、循环)+ 文件/网络库 的组合。但一旦你开始用脚本接管这些重复动作,会很直观地感觉到: “啊,原来学编程,最先改变的是自己的生活。”

你可以先挑一两个最有感觉的改一改,把自己的路径、习惯塞进去,跑通之后,再慢慢把它们做成自己的“小工具箱”。等哪天排查线上问题、看一堆日志头大的时候,就知道这些基础脚本有多香了。

🔥私藏精品🔥
虎哥作为一名老码农,整理了全网最全《Python高级资料合集》。总量高达650GB

最新文章

随机文章