Python 做自动化核心思路:识别重复操作 → 选择对应库 → 编写脚本 → 定时执行,覆盖文件处理、办公、网页、邮件、剪贴板、系统操作,附带可直接复制示例。
一、必备常用库分类
安装示例:
pip install openpyxl pyperclip requests beautifulsoup4 schedule pyautogui playwright
playwright install
二、高频日常自动化示例
1. 文件自动化:批量重命名文件
pathlib 现代文件操作,推荐优先使用
python
运行
from pathlib import Path
folder = Path(r"D:/test_files")
# 遍历目录下png图片
for idx, file in enumerate(folder.glob("*.png"), start=1):
new_name = folder / f"photo_{idx:03d}.png"
file.rename(new_name)
print("批量重命名完成")
2. Excel 自动化:读取 + 写入
python
运行
from openpyxl import load_workbook
wb = load_workbook("data.xlsx")
ws = wb.active
# 读取A1单元格
val = ws["A1"].value
print(val)
# 写入数据
ws["B2"] = "自动写入内容"
ws.append(["张三",28,"工程师"])
wb.save("data_output.xlsx")
3. 剪贴板自动化
python
运行
import pyperclip
# 复制到剪贴板
pyperclip.copy("Hello Python自动化")
# 获取剪贴板内容
text = pyperclip.paste()
print(text)
4. 自动发送邮件(带附件)
python
运行
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
msg = MIMEMultipart()
msg["From"] = "xxx@163.com"
msg["To"] = "target@xxx.com"
msg["Subject"] = "自动化邮件通知"
msg.attach(MIMEText("这是Python自动发送的邮件正文","plain"))
# 添加附件
with open("report.xlsx","rb") as f:
att = MIMEApplication(f.read())
att.add_header('Content‑Disposition','attachment',filename="report.xlsx")
msg.attach(att)
# 163邮箱示例,使用授权码登录
with smtplib.SMTP_SSL("smtp.163.com",465) as server:
server.login("xxx@163.com","你的授权码")
server.send_message(msg)
print("邮件发送成功")
5. 网页数据抓取(静态页面)
python
运行
import requests
from bs4 import BeautifulSoup
resp = requests.get("https://example.com")
soup = BeautifulSoup(resp.text,"html.parser")
# 提取所有a标签
for a in soup.find_all("a"):
print(a.get_text(), a.get("href"))
6. 浏览器自动化(Playwright,比 selenium 更稳定)
模拟人工打开浏览器、点击、输入
python
运行
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=False) # headless=True无头不显示浏览器
page = browser.new_page()
page.goto("https://www.baidu.com")
page.locator("#kw").fill("Python自动化")
page.locator("#su").click()
page.wait_for_timeout(3000)
browser.close()
7. 定时执行脚本
schedule 库简单定时
python
运行
import schedule
import time
def job():
print(f"执行定时任务 {time.ctime()}")
# 每1分钟执行一次
schedule.every(1).minutes.do(job)
# schedule.every().day.at("08:30").do(job) # 每天早上8点30分
while True:
schedule.run_pending()
time.sleep(1)
生产环境不推荐 schedule,Linux 用 crontab,Windows 用任务计划程序,比 Python 循环更可靠。
三、系统层面设置自动运行(重点)
脚本写完后,不需要手动双击运行:
Windows
将脚本保存为
task.pyWindows「任务计划程序」:新建任务,触发器设置时间,操作启动程序,程序填
python.exe,参数填脚本完整路径。
建议打包成 exe:
pyinstaller -F task.py,目标机器不需要装 Python 环境。
Linux/macOS
使用 crontab,crontab -e编辑
plaintext
30 8 * * * /usr/bin/python3 /home/user/task.py >> /home/user/task.log 2>&1
含义:每天 8 点 30 分运行脚本,输出日志。
四、GUI 桌面自动化(无 API 软件,慎用)
pyautogui 模拟鼠标键盘,适合没有接口的老旧桌面软件,分辨率变了脚本会失效。
python
运行
import pyautogui
pyautogui.click(x=100,y=200) #点击坐标
pyautogui.typewrite("输入文字")
优先优先优先找 API / 导出文件,尽量少用图像模拟操作,维护成本高。
五、最佳实践与避坑
优先使用 API,不要直接模拟鼠标键盘,GUI 自动化兼容性差,换电脑就失效。
文件操作全部使用绝对路径,相对路径容易出错,推荐
pathlib。增加异常捕获,防止脚本中途崩掉:
python
运行
try:
#任务逻辑
pass
except Exception as e:
print(f"出错:{e}")
做好日志输出,不要只用 print,用 logging 模块记录运行情况。
不要滥用爬虫,遵守网站 robots 协议,设置延时,避免频繁请求封 IP。
六、常见自动化场景清单,你可以直接挑方向练习
批量整理下载文件夹:归类图片、文档、压缩包
每日自动导出 Excel 报表,邮件发送给自己
监控网页,有更新自动通知
PDF 批量合并、提取文本
自动备份文件到网盘(搭配 rclone)
自动填写表单(Playwright)