17、自动化才是正义:用 Python 接管你的日常琐事

📅 每天都在:复制粘贴、发邮件、整理文件?技术人就该自动化一切重复工作 。 这篇带你用 Python 实现:自动发邮件、定时生成日报、清理临时文件、模拟操作,解放双手!


✅ 本文目标

  • smtplib 自动发送邮件
  • schedule 定时运行脚本
  • osshutil 清理旧文件
  • 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)

你只需每天打开它,它就能定时完成一切。


💡 拓展挑战

  1. 集成 cron 或 Airflow 实现更复杂调度
  2. 加日志记录 + 错误提醒
  3. Webhook 接收远程触发任务(搭配 Flask)

🧠 总结一句话

会写脚本是技巧,写出帮自己省时间的自动化工具,才是技术人最有价值的能力体现。

相关推荐
旧时光巷1 小时前
【机器学习③】 | CNN篇
人工智能·pytorch·python·机器学习·cnn·卷积神经网络·lenet-5
amazinging1 小时前
北京-4年功能测试2年空窗-报培训班学测开-第六十六天
python·学习·面试
麦兜*4 小时前
Spring Boot 整合量子密钥分发(QKD)实验方案
java·jvm·spring boot·后端·spring·spring cloud·maven
崎岖Qiu5 小时前
【JVM篇13】:兼顾吞吐量和低停顿的G1垃圾回收器
java·jvm·后端·面试
叫我:松哥6 小时前
python案例:基于python 神经网络cnn和LDA主题分析的旅游景点满意度分析
人工智能·python·神经网络·数据挖掘·数据分析·cnn·课程设计
2202_756749697 小时前
01 基于sklearn的机械学习-机械学习的分类、sklearn的安装、sklearn数据集及数据集的划分、特征工程(特征提取与无量纲化、特征降维)
人工智能·python·机器学习·分类·sklearn
王者鳜錸7 小时前
PYTHON从入门到实践-18Django从零开始构建Web应用
前端·python·sqlite
冗量7 小时前
PPT自动化 python-pptx - 8: 文本(text)
python·自动化·powerpoint
一只叫煤球的猫8 小时前
被架构师怼了三次,小明终于懂了接口幂等设计
后端·spring·性能优化
超级晒盐人8 小时前
用落霞归雁的思维框架推导少林寺用什么数据库?
java·python·系统架构·学习方法·教育电商