用途:在代码中处理人们实际交换的文档格式,包括 PDF、Word(.docx)、Excel(.xlsx)和 PowerPoint(.pptx)。核心观点是这些文件是结构化容器而非纯文本,应使用理解格式的库,而非对字节做字符串操作。
主要能力:PDF 方面可用 pdfplumber 提取文本与表格、pypdf 做页面操作和表单填写;Excel 用 openpyxl 读写,注意 data_only=True 返回缓存公式结果,read_only=True 流式读取大文件;Word 用 python-docx,复杂替换用 docxtpl 处理 run、循环和条件;PowerPoint 用 python-pptx,从组织模板继承母版与主题;扫描件用 pytesseract 配合 pdf2image 做 OCR。
使用方式:提取时先明确需要文本、结构还是保真度;生成时填充人工编写的模板而非逐元素拼装;OCR 前保证 300 DPI、去斜、增强对比并显式设置语言。
限制与安全:提取有损,无边框或多页表格不可靠,需校验列数、类型和合计;data_only=True 在文件从未被 Excel 打开时缓存为空;不要启用宏打开不可信文档,解析 XML 时禁用外部实体,限制大小与页数,在无网络沙箱中解析,分发前清除元数据,脱敏须删除内容流而非画黑框。
适用场景:报表生成、文档合并、格式转换、批量处理、表单填写与扫描件识别。具体库版本、安装命令和完整配方资料中未提供。