找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

811

积分

0

好友

108

主题
发表于 10 小时前 | 查看: 1| 回复: 0

你是不是也厌倦了每天上班就被各种机械重复的文件操作缠住?感觉自己像个高级文件搬运工,而不是解决问题的工程师?其实,很多枯燥的日常任务,用几行简单的 Python 脚本就能轻松搞定,把时间还给真正重要的事情。

下面分享 10 个我实际在用的 Python 小脚本,每个都瞄准一个具体的痛点。代码简洁明了,你只需要修改几处路径或参数,马上就能用起来。

1. 自动整理下载/桌面文件

每天面对杂乱无章的下载文件夹或桌面,找个文件都费劲。这个脚本可以按文件类型自动归类,比如把图片、文档、压缩包分别放到对应的子文件夹里。

import os, shutil
from pathlib import Path

base = Path(r"C:\Users\me\Downloads")  # 换成你自己的
rules = {
    "图片": [".png", ".jpg", ".jpeg"],
    "文档": [".pdf", ".docx", ".txt"],
    "压缩包": [".zip", ".rar", ".7z"],
}

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

2. 批量重命名文件,统一添加日期前缀

处理大量截图或临时文件时,一个清晰的命名规则至关重要。这个脚本给指定文件夹内的所有文件加上当天日期作为前缀,例如 2024-01-01_xxx.png

import os, datetime

folder = r"C:\Users\me\Pictures"
today = datetime.date.today().isoformat()

for name in os.listdir(folder):
    old = os.path.join(folder, name)
    if not os.path.isfile(old):
        continue
    new_name = f"{today}_{name}"
    new = os.path.join(folder, new_name)
    os.rename(old, new)

3. 自动清理N天前的旧日志文件

服务器上的应用日志如果不定期清理,很快就会占满磁盘。这个脚本帮你删除指定目录下超过指定天数(比如7天)的 .log 文件。

import os, time
from pathlib import Path

log_dir = Path("/var/log/myapp")
days = 7
expire = time.time() - days * 24 * 3600

for f in log_dir.glob("*.log"):
    if f.stat().st_mtime < expire:
        print("删除", f)
        f.unlink()

4. 每日自动备份重要目录到压缩包

对于工作文档、项目源码等关键数据,定期备份是必须的。这个脚本将指定目录压缩成一个以当天日期命名的ZIP包,方便归档。

import zipfile, datetime
from pathlib import Path

src = Path(r"D:\work_docs")
backup_dir = Path(r"D:\backup")
backup_dir.mkdir(exist_ok=True)

name = datetime.date.today().isoformat() + ".zip"
zip_path = backup_dir / name

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

5. 合并多个CSV文件

数据分析时,常常需要把每天或每周导出的多个CSV报表合并成一个文件。这个脚本无需第三方库,高效完成合并任务。

import csv, glob

files = glob.glob(r"D:\reports\2024-01-*.csv")
out = r"D:\reports\all_2024-01.csv"

header_written = False
with open(out, "w", newline="", encoding="utf-8") as fout:
    writer = None
    for f in files:
        with open(f, newline="", encoding="utf-8") as fin:
            reader = csv.reader(fin)
            header = next(reader, None)
            if header and not header_written:
                writer = csv.writer(fout)
                writer.writerow(header)
                header_written = True
            for row in reader:
                writer.writerow(row)

6. 定时发送简易邮件提醒

给自己设定一些工作提醒,比如下班前写日报、每周周会等。这个脚本利用SMTP协议发送邮件,可以结合系统定时任务使用。

import smtplib
from email.mime.text import MIMEText

smtp_host = "smtp.xxx.com"
user = "you@xxx.com"
password = "你的授权码"

msg = MIMEText("下班前记得写日报!", "plain", "utf-8")
msg["Subject"] = "小提醒"
msg["From"] = user
msg["To"] = user

with smtplib.SMTP_SSL(smtp_host, 465) as s:
    s.login(user, password)
    s.send_message(msg)

7. 搜索项目代码中的特定关键字并生成报告

想在代码库中快速找出所有 TODOFIXME 注释或者某个特定函数调用?这个脚本遍历所有 .py 文件,生成一个包含文件、行号和内容的简明报告。

from pathlib import Path

root = Path(r"D:\code\my_project")
keyword = "TODO"
result = []

for p in root.rglob("*.py"):
    for i, line in enumerate(p.read_text(encoding="utf-8", errors="ignore").splitlines(), start=1):
        if keyword in line:
            result.append(f"{p}:{i}: {line.strip()}")

report = "\n".join(result)
Path("todo_report.txt").write_text(report, encoding="utf-8")

8. 简易网站存活监控

需要监控测试环境或几个关键服务的健康状态?这个极简版的监控脚本会定期访问指定URL列表,并打印出状态码或异常信息。

import requests, time

urls = ["https://www.baidu.com", "https://www.xxx.com/health"]

while True:
    for url in urls:
        try:
            r = requests.get(url, timeout=3)
            print(time.strftime("%H:%M:%S"), url, r.status_code)
        except Exception as e:
            print(time.strftime("%H:%M:%S"), url, "DOWN", e)
    time.sleep(60)

9. 一键处理并命名PPT图片素材

准备演示文稿时,从各处收集的图片素材命名混乱。这个脚本将桌面上的图片文件自动移动到指定文件夹,并按顺序重命名为 slide_001.png 这样的格式。

import os, shutil

src = r"C:\Users\me\Desktop"
dst = r"C:\Users\me\Desktop\ppt_imgs"
os.makedirs(dst, exist_ok=True)

for i, name in enumerate(os.listdir(src), start=1):
    if not name.lower().endswith((".png", ".jpg", ".jpeg")):
        continue
    old = os.path.join(src, name)
    new = os.path.join(dst, f"slide_{i:03d}.png")
    shutil.move(old, new)

10. 快速记录工作日志

好记性不如烂笔头。这个脚本通过命令行交互,让你快速记录下当前完成的工作或想法,并自动附上时间戳,保存到日志文件中。

from pathlib import Path
import datetime

log = Path(r"D:\life\work_log.txt")
now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
text = input("今天干了啥?:")
log.parent.mkdir(parents=True, exist_ok=True)
with log.open("a", encoding="utf-8") as f:
    f.write(f"[{now}] {text}\n")

以上就是 10 个实用小脚本。它们的目标很明确:帮你自动化那些琐碎、重复且容易出错的手工操作。你可以从最困扰你的那个任务开始,复制代码、修改路径、试运行一下。更进一步,可以把它们加入到 Windows 任务计划或 Linux 的 crontab 里,实现真正的全自动。

如果你对这类提升效率的 Python 技巧感兴趣,或者想了解如何将这些脚本组合成更强大的工具链,欢迎在 云栈社区 与更多开发者交流心得。记住,好的工具不在于有多复杂,而在于它是否真正解放了你的生产力。




上一篇:Java Web服务性能优化实战:从SQL到Tomcat配置的七步提效
下一篇:从知乎15周年经验展说起:我们为什么依然需要专业社区?
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-27 16:55 , Processed in 0.319040 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表