跳到主要内容

自动化脚本实战

用Python自动化日常任务

文件批量处理

import os
from pathlib import Path

def batch_rename(folder, old_ext, new_ext):
"""批量重命名文件扩展名"""
folder = Path(folder)
for file in folder.glob(f"*{old_ext}"):
new_name = file.with_suffix(new_ext)
file.rename(new_name)
print(f"重命名: {file.name} -> {new_name.name}")

def organize_files(folder):
"""按扩展名分类文件"""
folder = Path(folder)
for file in folder.iterdir():
if file.is_file():
ext = file.suffix.lower()[1:] or "other"
dest_folder = folder / ext
dest_folder.mkdir(exist_ok=True)
file.rename(dest_folder / file.name)
print(f"移动: {file.name} -> {ext}/")

定时任务

import schedule
import time

def job():
print("执行任务...")

# 每天8:00执行
schedule.every().day.at("08:00").do(job)

# 每10分钟执行
schedule.every(10).minutes.do(job)

while True:
schedule.run_pending()
time.sleep(1)

自动发送邮件

import smtplib
from email.mime.text import MIMEText

def send_email(to, subject, body):
msg = MIMEText(body)
msg["Subject"] = subject
msg["From"] = "your@email.com"
msg["To"] = to

with smtplib.SMTP_SSL("smtp.example.com", 465) as server:
server.login("your@email.com", "password")
server.send_message(msg)

数据备份脚本

import shutil
from datetime import datetime
from pathlib import Path

def backup(source, backup_dir):
"""备份文件夹"""
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
dest = Path(backup_dir) / f"backup_{timestamp}"
shutil.copytree(source, dest)
print(f"备份完成: {dest}")

本章小结

  • 文件操作:批量处理、整理
  • 定时任务:schedule库
  • 邮件自动化:smtplib
  • 系统自动化:备份、监控

恭喜完成实战项目篇!

→ 继续阅读:35-Web前端开发路径