自动化脚本实战
用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前端开发路径