用 Python 解决日常重复工作:合并 Excel、批量改名、抓网页数据、监控文件夹、自动发邮件。每个脚本都能直接复制使用,附完整代码和依赖清单。
# Python 自动化脚本入门:5 个开箱即用的小工具,办公效率翻倍
每天重复的活儿:合并 Excel、抓网页数据、改文件名、监控文件夹、发邮件通知……同事花一下午做的活,我用 Python 几行就搞定。这篇不写复杂的概念,只给你 5 个我每天在用的脚本,每个都能直接复制到工作里用,下载附件照着跑就行。
一、合并 100 个 Excel 文件到一个工作簿
适用:月底合并销售数据 / 周报汇总 / 部门数据合集
import pandas as pd
from pathlib import Path
def merge_excel(files_dir, output_file):
files = Path(files_dir).glob('*.xlsx')
dfs = [pd.read_excel(f) for f in files]
merged = pd.concat(dfs, ignore_index=True)
merged.to_excel(output_file, index=False)
return len(dfs)
count = merge_excel('./data', './合并结果.xlsx')
print(f'已合并 {count} 个文件')
关键点:`ignore_index=True` 必加,否则合并后行号重复,vlookup 查不到。
二、批量重命名 1000 张图片
适用:摄影作品整理 / 电商图片规范 / 内容素材归档
import os
from pathlib import Path
def batch_rename(folder, prefix='img'):
files = list(Path(folder).glob('*'))
for i, f in enumerate(files, 1):
new_name = f.parent / f'{prefix}_{i:03d}{f.suffix}'
f.rename(new_name)
batch_rename('./photos', prefix='photo_2026')
注意:先在小批文件试,确认命名规则对再大批跑(rename 没有 undo)。
三、抓网页表格到 Excel
适用:工商信息查询 / 招聘数据 / 公开榜单
import pandas as pd
def scrape_tables(url):
tables = pd.read_html(url)
return tables[0] # 通常第一个表就是主表
df = scrape_tables('https://example.com/list')
df.to_excel('抓取结果.xlsx', index=False)
进阶:要登录的网站用 `requests + BeautifulSoup`;要 JS 渲染的用 Selenium 或 Playwright(附件里给了 Playwright 模板)。
四、监控文件夹变化自动处理
适用:实时文件入库 / 监控日志 / 接收上传文件
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
import time
class AutoHandler(FileSystemEventHandler):
def on_created(self, event):
if event.is_directory: return
print(f'新文件: {event.src_path}')
# 这里写自动处理逻辑
observer = Observer()
observer.schedule(AutoHandler(), path='./watch_folder', recursive=False)
observer.start()
try:
while True: time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
五、邮件自动发报表给老板
适用:每周自动发数据周报 / 定时任务通知
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
def send_email(to, subject, content, attachment=None):
msg = MIMEMultipart()
msg['Subject'] = subject
msg['From'] = 'me@company.com'
msg['To'] = to
msg.attach(MIMEText(content, 'plain', 'utf-8'))
if attachment:
with open(attachment, 'rb') as f:
part = MIMEApplication(f.read())
part['filename'] = attachment
msg.attach(part)
with smtplib.SMTP('smtp.company.com', 587) as s:
s.starttls()
s.login('me@company.com', 'password')
s.send_message(msg)
send_email('boss@company.com', '本周数据', '见附件', 'data.xlsx')
上手建议
第一步:装 Python 3.11+,编辑器用 VS Code(上一篇文章讲过配置)。
第二步:装必须库
pip install pandas openpyxl watchdog beautifulsoup4 lxml requests
第三步:把附件里 5 个脚本存到 `scripts/`,按需调用。
第四步:写自己的工具
找到你重复做的动作(比如「每周导数据 + 发邮件」)
2. 拆 3 步:取数据 → 处理 → 发出去
3. 找现成库(90% 都有现成轮子)
4. 写 30 行脚本,跑通
常见问题
Q:Python 不是编程吗?我学不会怎么办?
A:这 5 个脚本都不涉及算法,你只需要会复制、改路径、跑。先跑通比理解每一行重要,跑通后再回头看 log。
Q:报错红色一片英文怎么办?
A:错误信息最下面一行写「xxxError: yyy」,复制 yyy Google,9 成有现成答案。
Q:能跑 GUI 软件吗(按按钮那种)?
A:用 `pyautogui`,但慢。建议把软件任务转成命令行版(比如 Excel 用 openpyxl 代替)。
Q:怎么部署到服务器 24 小时跑?
A:用 systemd / cron / 阿里云函数计算。附件里有 Linux 部署模板。
写在最后
Python 不是用来变成程序员的,是用来让重复工作消失。你一周省下 5 小时,就是这篇文章的全部价值。
附件里给了 5 个脚本 + 一份新手常见坑清单(PDF) + 一份速查表(JPG)。下载照着跑,跑不通就再看一遍文章里"上手建议"那节。
立即开始自动化,每周省下 5 小时。