下午5点50,领导走过来:这80份合同,明天开会要汇总成一张表。
我心想,现在谁还手动复制啊?让AI写段脚本,一句话跑完不就行了?
结果那晚我加班到10点——不是AI不行,是我太天真。翻车3次,每一个都是普通人最容易踩的坑。
一、翻车现场1:PDF扫描件,AI提取了个寂寞
以前:打开每份PDF,肉眼抄关键字段,半天过去眼睛冒火星。
我让AI"把这堆PDF的客户名、金额、日期提取出来",它很爽快地给了结果。
一看——空了一大半。
原因很简单:这堆里混了扫描件(图片型PDF)。AI直接读文本,读到的全是空气。文本型PDF能提取,扫描件得先OCR(比如Tesseract)转成文字,AI才看得懂。
解法:跑之前先分清文件类型。给AI的指令里写清楚——"先判断是文本PDF还是扫描件,扫描件先用OCR转文字再提取"。别指望它自己发现,它不会主动问你。
二、翻车现场2:跑一半崩了,不知道哪份出了问题
以前:逐份处理,错一份当场就知道。
我一次性把80份丢给脚本,跑到第53份,一个格式报错的旧版.xls直接让整个程序挂掉,前面跑的全白干。
解法:两件事。
第一,给文件操作套上 try-except,遇到报错的文件跳过、记到日志里,其余继续跑(代码见文末骨架)。
第二,正式跑之前,先拿1–2份试水,确认格式都吃得下再上全量。这条能救你半条命。
三、翻车现场3:敏感数据,差点被传上公共工具
以前:U盘拷来拷去,顶多自己累。
图省事,我把带客户信息的合同丢进某个"免费PDF转Excel"在线网站,让AI接着处理。
后来才后怕:这些合同有姓名、金额、甚至身份证号,公共工具等于把公司机密敞开给人看。
解法:含隐私、机密的文件,别用在线公共转换工具。优先本地脚本(python-docx / pdfplumber / openpyxl 都是免费开源库),或者企业级服务。文件少的话,本地跑最稳。
四、关键认知:AI不是"全自动",是"写骨架+你兜底"
三次翻车复盘完,我明白一件事:
普通人用AI编程处理文档,要的不是"一句话全自动"(那是流量噱头),而是一套可复制的半自动工作流。
分工要很清楚:
- 规则明确的脏活
(日期统一、金额转数值、表头对齐、重复项检测)——交给 Python,又快又稳,别浪费AI的token。 - 只有"理解/判断"的活
(这段备注什么意思、这条该归到哪类、异常原因怎么解释)——才交给 AI。 - 永远保留原文件
,脚本只输出新文件或结果总表,崩了能回滚。
下面这段骨架,是我现在每次处理文档都复用的(占位符改成你的路径即可):
import os, globfrom openpyxl import Workbook# 1. 遍历文件夹里所有文档(按需增删类型)files = glob.glob("文档/*.pdf") + glob.glob("文档/*.docx") + glob.glob("文档/*.xlsx")results, failed = [], []for f in files:try:# 2. 按类型解析:扫描件先OCR,文本型直接读# 提取逻辑交给你的函数,规则清洗用Python做row = extract_one(f) # 文本/数值对齐、去重在这里完成results.append(row)except Exception as e:failed.append((f, str(e))) # 3. 跳过错误文件并记录,不中断整批continue# 4. 输出新表,绝不覆盖原文件wb = Workbook(); ws = wb.activefor r in results: ws.append(r)wb.save("输出/汇总表.xlsx")# 5. 失败清单,方便补跑with open("输出/失败日志.txt", "w", encoding="utf-8") as log:for f, err in failed: log.write(f"{f}\t{err}\n")
结尾:收藏这4条,下次别再翻车
跑之前先分文件类型,扫描件先OCR再提取。 套 try-except + 错误日志,先试1–2份再全量跑。 敏感文件不上公共工具,优先本地脚本或企业级服务。 规则清洗给Python,理解判断给AI,原文件永远留底。
说白了:AI帮你把"写代码"变快了,但"别把公司数据搞丢、别让80份文档白跑"这种事,还是得你自己兜底。
它是副驾驶,不是自动驾驶。
本文为个人实战经验分享。文中工具名(python-docx、pdfplumber、openpyxl、pandas、Tesseract)均为公开开源项目,未作商业评价。全文未引用外部统计数字,仅作方法参考,不构成任何建议。
夜雨聆风