前言:为什么你的键盘在哭泣?
(每天早上打开Excel的那一刻,是不是感觉人生被按了循环播放键?)各位打工人注意了!今天要给你们分享的可不是网上那些花拳绣腿的教程,而是实打实的生产力核武器!用Python写自动化脚本,让你的办公效率直接起飞!(亲测每天能多摸鱼2小时)
一、文件管理终结者
1.1 批量重命名神器
import os
def 花式重命名(文件夹路径):
for index, 文件名 in enumerate(os.listdir(文件夹路径)):
新名字 = f"机密文件_{index+1}.txt"
os.rename(
os.path.join(文件夹路径, 文件名),
os.path.join(文件夹路径, 新名字)
)
print(f"[系统提示] {文件名} 已成功伪装成 {新名字}")
# 使用示例(记得先备份!)
花式重命名("/Users/打工人/桌面/乱七八糟的文档")
(警告!运行前请备份!这个脚本能把整个文件夹的文件名改成连续编号,适合整理甲方发来的10086个修改版方案)
1.2 自动分类小能手
import shutil
from pathlib import Path
def 智能分类(源文件夹):
文件类型库 = {
'图片': ['.jpg','.png','.gif'],
'文档': ['.pdf','.docx','.xlsx'],
'视频': ['.mp4','.mov']
}
for 文件 in Path(源文件夹).glob('*'):
if 文件.is_file():
后缀 = 文件.suffix.lower()
for 类型, 后缀列表 in 文件类型库.items():
if 后缀 in 后缀列表:
目标路径 = Path(源文件夹)/类型
目标路径.mkdir(exist_ok=True)
shutil.move(str(文件), str(目标路径))
break
# 使用姿势
智能分类("/Users/打工人/下载/电子垃圾场")
(这个脚本会自动创建分类文件夹并把文件归类,拯救你的下载文件夹于水火之中!)
二、Excel魔法改造计划
2.1 报表自动合并术
import pandas as pd
from glob import glob
def 合并报表(输入路径, 输出文件):
所有表格 = []
for 文件 in glob(f"{输入路径}/*.xlsx"):
数据 = pd.read_excel(文件)
所有表格.append(数据)
合并后的数据 = pd.concat(所有表格, ignore_index=True)
合并后的数据.to_excel(输出文件, index=False)
print(f"[系统通知] 成功合并{len(所有表格)}个文件,已保存到{输出文件}")
# 实战应用
合并报表("/财务部/2023报表", "年度总报表.xlsx")
(再也不用手动复制粘贴N个表格了!适合合并各部门发来的格式相同的报表)
2.2 智能格式美化
from openpyxl import load_workbook
from openpyxl.styles import Font, Alignment
def 颜值改造(文件路径):
工作簿 = load_workbook(文件路径)
工作表 = 工作簿.active
# 设置标题样式
for row in 工作表.iter_rows(min_row=1, max_row=1):
for cell in row:
cell.font = Font(bold=True, color="FFFFFF")
cell.fill = PatternFill(start_color="4F81BD", end_color="4F81BD", fill_type="solid")
# 自动调整列宽
for column in 工作表.columns:
max_length = 0
column = [cell for cell in column]
for cell in column:
try:
if len(str(cell.value)) > max_length:
max_length = len(str(cell.value))
except:
pass
adjusted_width = (max_length + 2) * 1.2
工作表.column_dimensions[column[0].column_letter].width = adjusted_width
工作簿.save(文件路径)
(从此告别手工调整格式!自动给表格加粗标题、设置斑马线、调整列宽,让你的报表瞬间专业度+10086)
三、邮件自动化大法
3.1 智能邮件轰炸机
import smtplib
from email.mime.text import MIMEText
def 发送邮件(发件人, 密码, 收件人列表, 主题, 内容):
msg = MIMEText(内容, 'html')
msg['Subject'] = 主题
msg['From'] = 发件人
with smtplib.SMTP_SSL('smtp.xx.com', 465) as server:
server.login(发件人, 密码)
for 收件人 in 收件人列表:
msg['To'] = 收件人
server.sendmail(发件人, 收件人, msg.as_string())
print(f"[发送成功] 给 {收件人} 的邮件已发射")
# 配置说明
发送邮件(
"你的邮箱@xx.com",
"应用专用密码(不是登录密码!)",
["boss@company.com", "team@company.com"],
"【自动发送】每日工作报告",
"<h2>今日工作汇总</h2><ul><li>写了5个自动化脚本</li><li>摸了3小时鱼</li></ul>"
)
(重要提示:务必在邮箱设置中开启SMTP服务并获取授权码!这个脚本适合每天定时发送日报/周报)
四、进阶技巧:让脚本自己上班
4.1 定时任务设置
(以Mac/Linux为例)使用crontab设置每日自动运行:
# 每天上午9点自动运行报表脚本
0 9 * * * /usr/local/bin/python3 /脚本路径/自动报表.py
4.2 异常处理必备
try:
# 你的代码
except Exception as e:
with open("错误日志.txt", "a") as f:
f.write(f"[{datetime.now()}] 发生错误:{str(e)}\n")
# 自动发送错误通知
发送邮件("监控邮箱@xx.com", "脚本崩溃警报!")
(给脚本加上这个保险杠,就算崩溃也会留下犯罪现场记录!)
五、防坑指南(血泪教训)
- 路径问题:永远使用os.path.join()拼接路径,拒绝手动拼接(Windows和Mac的斜杠不一样!)
- 权限陷阱:操作重要文件前先做备份(别问我怎么知道的)
- 编码问题:在打开文件时明确指定encoding=‘utf-8’
- 防沉迷设置:在循环里加time.sleep(),别把公司服务器搞崩了
- 测试准则:新脚本先用测试文件夹试运行!
结语:你已获得摸鱼许可证
(看到这里的同学,你已经掌握了让电脑自己打工的核心科技!)最后提醒:自动化是为了提升效率,不是完全替代人工。把这些脚本当作你的数字助理,把省下的时间用来…(喝茶/学习/继续写更牛的脚本)!