📅 每天都在:复制粘贴、发邮件、整理文件?技术人就该自动化一切重复工作 。 这篇带你用 Python 实现:自动发邮件、定时生成日报、清理临时文件、模拟操作,解放双手!
✅ 本文目标
- 用
smtplib
自动发送邮件 - 用
schedule
定时运行脚本 - 用
os
和shutil
清理旧文件 - 用
pyautogui
模拟键鼠执行 GUI 操作
📧 一、自动发送邮件(文本 + 附件)
1. 配置发件人信息(以 QQ 邮箱为例)
python
import smtplib
from email.message import EmailMessage
EMAIL = "15332694187@163.com"
APP_PASSWORD = "xxxx"
msg = EmailMessage()
msg.set_content("这是一封来自 Python 的测试邮件")
msg["Subject"] = "自动化测试"
msg["From"] = EMAIL
msg["To"] = "15332694187@163.com"
with smtplib.SMTP_SSL("smtp.163.com", 465) as smtp:
smtp.login(EMAIL, APP_PASSWORD)
smtp.send_message(msg)
print("✅ 邮件发送成功")
🕒 二、定时生成日报(结合 schedule
)
python
import schedule
import time
from datetime import datetime
def daily_report():
today = datetime.now().strftime("%Y-%m-%d")
with open(f"report_{today}.txt", "w") as f:
f.write("✅ 今日完成事项:\n- 写博客\n- 复习算法\n- 提交 PR")
print("📄 日报已生成")
# 每晚8点生成日报 非常哇塞!
schedule.every().day.at("20:00").do(daily_report)
# 为了测试改成1分钟后生成 啊哈哈
next_minute = (datetime.now() + timedelta(minutes=1)).strftime("%H:%M")
schedule.every().day.at(next_minute).do(daily_report)
print(f"🕒 将在 {next_minute} 自动生成日报")
print("🕒 日报任务已启动")
while True:
schedule.run_pending()
time.sleep(1)


🧹 三、清理 7 天前的临时文件
python
import os, time
from pathlib import Path
def clean_old_files(folder, days=7):
cutoff = time.time() - days * 86400
for f in Path(folder).glob("*"):
if f.is_file() and f.stat().st_mtime < cutoff:
print(f"🗑 删除 {f.name}")
f.unlink()
clean_old_files("logs", days=7)

🖱 四、自动点击、打字、截屏(pyautogui
)
安装依赖:
bash
pip install pyautogui
python
import pyautogui
import time
# 模拟打开记事本打字
time.sleep(3) # 给你3秒切换窗口
pyautogui.write("自动打字中,Python太牛了!", interval=0.1)
pyautogui.press("enter")
👉 还可以自动截图:
python
screenshot = pyautogui.screenshot()
screenshot.save("screenshot.png")
📦 项目建议:写一个「自动化助手 dashboard」
功能包括:
- 自动发送日报(文本 or 邮件)
- 定时文件清理(缓存、日志)
- 定时执行爬虫任务
- 定时发 Slack、微信通知(接 webhook)
你只需每天打开它,它就能定时完成一切。
💡 拓展挑战
- 集成 cron 或 Airflow 实现更复杂调度
- 加日志记录 + 错误提醒
- Webhook 接收远程触发任务(搭配 Flask)
🧠 总结一句话
会写脚本是技巧,写出帮自己省时间的自动化工具,才是技术人最有价值的能力体现。