
前言先把标题里的说法说清楚「7 大」是个营销式的整数并不存在一个权威的「办公自动化必备 7 库」清单。不同教程列的七个小一半不一样。更值得新手记住的是另一件事这批库绝大多数是第三方库标准库里没有必须先pip install才能用列表里真正属于标准库的只有发邮件用的smtplib和email。还有一个常见误解以为「装好库就能自动办公」。办公自动化真正的瓶颈通常不是 API 不熟而是数据格式不统一、模板不规范、路径和编码问题这些占了实际工作量的大半。库只负责「把已经规整好的数据写进文件」。下面按「文件类型」组织这七个库每个都只讲用途、典型流程和学习顺序。凡是我不能确证的调用细节都以各库官方文档为准——第三方库 API 变动频繁本文不作为接口参考。一、七个库分别管什么库处理的文件主要能力安装openpyxlExcel.xlsx读写单元格、工作表、公式结果pip install openpyxlpandasExcel / CSV 等表格过滤、分组、透视、批量计算pip install pandaspython-docxWord.docx生成段落、表格、样式pip install python-docxpython-pptxPowerPoint.pptx按模板生成幻灯片pip install python-pptxpypdfPDF合并、拆分、旋转、提取文本pip install pypdfPillow图片缩放、裁剪、加水印、格式转换pip install pillowsmtplibemail邮件组装并发送邮件标准库无需安装几个新手容易踩的「名字坑」python-docx的导入名是docx安装名和导入名不一样。python-pptx的导入名是pptx同理。Pillow 的导入名是PIL这是历史遗留别把pip install PIL当成安装命令——那个包早就废弃了应该装pillow。pypdf是新一代 PDF 库早期的PyPDF2已经并入pypdf这一线。看到老教程写PyPDF2记得查一下你所用版本的迁移说明。二、openpyxl读写 Excel适用场景读写.xlsx不支持老的.xls那种格式要么先另存为.xlsx要么换别的库、按行按列填数据、批量改格式。典型流程是「打开或新建工作簿 → 拿到工作表 → 按单元格读写 → 保存」。下面这段调用形式取自 openpyxl 官方文档的教程页# 适用于 Python 3.8需要 pip install openpyxlfrom openpyxl import Workbook, load_workbook# 新建wb Workbook() # 新工作簿默认带一个工作表ws wb.active # 取当前工作表ws[A1] 姓名ws[B1] 分数ws[A2] annws[B2] 95wb.save(demo.xlsx)# 读取wb2 load_workbook(demo.xlsx)ws2 wb2.activeprint(ws2[A1].value) # 姓名# 按行遍历只要值不要单元格对象for row in ws2.iter_rows(values_onlyTrue):print(row)学习顺序建议先练「读一个表格 → 过滤出需要的行 → 写到新表格」这条链路比一上来就研究样式、图表更实用。三、pandas表格数据的加工厂适用场景合并多个 Excel/CSV、按条件筛选、分组统计、数据透视、去重、批量重命名列。pandas和openpyxl的分工要分清openpyxl负责「单元格级的读写和格式」pandas负责「表级的计算」。做批量统计时常见做法是用pandas读入表格算完再写出很少逐格操作。新手学习顺序read_excel/read_csv→ 列选择与条件过滤 →groupby分组聚合 →merge连接两张表 →to_excel输出。具体参数名比如表头在第几行、要读哪几个 sheet请以官方文档为准各版本也有差异。一个提醒不要把 Excel 当数据库用。几万行以内pandas很舒服再大就该考虑真正的数据库了。四、python-docx生成 Word 文档适用场景批量生成合同、通知、报告——通常是「一个模板 一张数据表」为每行数据生成一份文档。流程是打开模板文档 → 找到要填的位置段落或表格单元格→ 写入内容 → 另存为新文件。它的强项是保留模板里的样式所以做这类需求比「从零拼一个 Word」稳定得多。学习顺序先会读写段落文本再会操作表格最后才去碰样式和分节。具体到方法的参数以官方文档为准安装名是python-docx、导入名是docx。五、python-pptx批量生成 PPT适用场景周报、汇报、培训材料——同样建议「先做模板再按数据填」。思路和python-docx一致以模板为骨架按占位符替换文字、插入表格或图片。纯代码从零排版 PPT 的性价比很低能把模板套起来就已经解决大部分需求。六、pypdfPDF 的合并与拆分适用场景把多份 PDF 合成一份、按页码拆开、统一旋转、提取文本做检索。新手注意两点一是扫描件是图片提取不出文字这不是库的问题需要先做 OCR二是加密 PDF 需要先按库提供的方式解密再处理。具体接口以pypdf官方文档为准注意它和PyPDF2的差异。七、Pillow图片批处理适用场景批量缩放、统一裁剪成固定尺寸、加文字水印、批量转格式。典型需求是「把目录下所有图片处理成同一规格」。做这类脚本时务必输出到新目录而不是覆盖原图——批处理脚本写错一个参数原图就没了。八、smtplib email自动发邮件标准库这一组是标准库不需要安装。用email.message.EmailMessage组装邮件用smtplib连接服务器发送# 适用于 Python 3.8import osimport smtplibfrom email.message import EmailMessagemsg EmailMessage()msg[Subject] 每日报表msg[From] senderexample.commsg[To] receiverexample.commsg.set_content(附件是今天的报表。)password os.environ[MAIL_PASSWORD] # 从环境变量读别写死在代码里with smtplib.SMTP_SSL(smtp.example.com, 465) as server:server.login(senderexample.com, password)server.send_message(msg)安全与合规要点密码、授权码放在环境变量或配置里绝对不要提交进代码仓库。优先使用带加密的连接SMTP_SSL或先连再starttls()不要在明文连接上发账号密码。遵守邮箱服务商的发送频率和条款不要用它做群发营销那属于垃圾邮件账号会被封。具体服务器地址、端口和是否需要「授权码」由服务商决定以服务商文档为准。常见坑点把安装名当导入名❌import python-docx、import python-pptx、import pillow✅ 分别导入为docx、pptx、PIL以为标准库里自带这些库❌ 直接import openpyxl却报ModuleNotFoundError✅ 除smtplib/email外都要先pip install以为 openpyxl 能读.xls❌ 用openpyxl打开老的.xls文件 ✅ 先另存为.xlsx或改用支持该格式的库用 pandas 逐行逐格改 Excel❌ 写for循环一个个单元格赋值慢且易错 ✅ 表级计算交给pandas格式层面的操作才用openpyxl把密码硬编码进脚本❌server.login(mex.com, 我的密码)直接提交到仓库 ✅ 用os.environ[...]或配置文件读取并把配置文件加入忽略清单批处理图片直接覆盖原文件❌ 处理结果写回原路径参数写错就毁掉原图 ✅ 输出到独立目录保留原始文件以为 PDF 提取文本对扫描件也有效❌ 对扫描版 PDF 调文本提取得到空字符串 ✅ 扫描件要先做 OCR提取前先确认 PDF 里是否真的有文字层路径拼错或编码不对❌ 把 Windows 路径里的反斜杠直接写进字符串或漏写encoding✅ 用pathlib.Path拼路径读写文本时显式指定encoding总结需求首选备注单元格级读写 Excelopenpyxl只支持.xlsx表格计算、多表合并pandas与 openpyxl 分工配合批量生成 Wordpython-docx导入名docx建议用模板批量生成 PPTpython-pptx导入名pptx建议用模板PDF 合并/拆分/提取pypdf注意与PyPDF2的区别图片批处理Pillow导入名PIL别覆盖原图发送邮件smtplibemail标准库密码走环境变量入门时的正确姿势是先挑一个和手头任务最贴近的库把「读 → 处理 → 写」这条最小链路走通再逐步加功能。七个库不需要一次学完也不需要都学——用哪个查哪个并且一律以该库的官方文档为准。