Python办公自动化项目实战_批量处理文件与表格技巧【教程】

Python办公自动化核心是用几行代码替代重复操作:用os/shutil批量归类文件,pandas合并/处理Excel,openpyxl精细编辑,配合定时任务与异常提醒实现全自动。

用Python做办公自动化,核心是把重复的手动操作变成几行代码——批量处理文件和表格不是炫技,而是每天省下1小时的实在事。

自动整理杂乱的文件夹

下载文件夹塞满各种格式的文档?用osshutil就能按后缀归类。比如把所有PDF移到“合同”,Excel移到“数据”,图片统一缩放到指定尺寸。

  • 先用os.listdir()遍历当前目录
  • os.path.splitext()分离文件名和扩展名
  • shutil.move()把文件挪到对应子文件夹(不存在就用os.makedirs()创建)

一键合并上百个Excel表格

销售、财务、运营各自发来月度报表?不用一个个复制粘贴。用pandas读取所有xlsx文件,纵向拼接成一张总表,还能自动加一列“来源文件名”方便溯源。

  • glob.glob("*.xlsx")快速获取全部Excel路径
  • 循环读取时加sheet_name=0避免多Sheet报错
  • 拼接前用df.assign(来源文件名=filename)标记原始文件

批量修改表格内容并保存为新文件

要给几百张表统一替换抬头、补全空值、转日期格式、导出PDF?pandas配合openpyxl就能搞定。比如把“客户名称”列所有“有限公司”简写为“公司”,再把“金额”列保留两位小数。

  • df["客户名称"].str.replace("有限公司", "公司")
  • df["金额"] = df["金额"].round(2)
  • 导出时用to_excel(..., index=False)去掉行号更清爽

定时运行+异常提醒更省心

脚本写好后,让它每天早上8点自动跑一次。Windows用任务计划程序,Mac/Linux用crontab。再加几行邮件发送逻辑(用smtplib),遇到报错或空文件直接微信/邮箱提醒你。

  • try...except包裹主逻辑,捕获FileNotFoundErrorEmptyDataError
  • 错误信息写入日志文件,比弹窗更安静可靠
  • datetime.now().strftime("%Y-%m-%d")生成带日期的输出文件名,避免覆盖

不复杂但容易忽略:每次运行前确认路径是否正确、编码是否统一(尤其是含中文的CSV)、Excel是否被其他程序占用。跑通一次,后面就是全自动了。