技术问询:如何从1000份PDF文件中提取Section 5内容至Excel
批量提取PDF中Section 5内容并导出至Excel
需求说明
从桌面同一文件夹内的1000份可复制文本的PDF中,提取Section 5的内容(范围:从Section 5标题开始,到Section 6标题前结束),最终导出为指定格式的Excel表格。
解决方案(Python实现)
以下是高效处理批量PDF的代码,依赖pdfplumber(精准文本提取)和pandas(Excel导出)。
1. 安装依赖库
打开终端执行:
pip install pdfplumber pandas openpyxl
2. 完整代码
import os import re import pdfplumber import pandas as pd # 替换为你桌面的目标文件夹路径 target_folder = r"C:\Users\你的用户名\Desktop\PDF文件夹" results = [] # 遍历所有PDF文件 for file_name in os.listdir(target_folder): if not file_name.lower().endswith(".pdf"): continue file_path = os.path.join(target_folder, file_name) full_pdf_text = "" # 读取PDF所有页面文本 with pdfplumber.open(file_path) as pdf: for page in pdf.pages: page_text = page.extract_text() if page_text: full_pdf_text += page_text + "\n" # 匹配Section 5到Section 6之间的内容 # 支持跨行匹配,忽略可能的格式差异 pattern = re.compile(r"Section 5\n(.*?)\nSection 6", re.DOTALL | re.IGNORECASE) match_result = pattern.search(full_pdf_text) if match_result: section5_content = match_result.group(1).strip() else: section5_content = "未找到有效Section 5内容" results.append({"File Name": file_name, "Section 5": section5_content}) # 导出到Excel output_df = pd.DataFrame(results) output_df.to_excel("Section5提取结果.xlsx", index=False, engine="openpyxl") print("处理完成!结果已保存到当前目录的Section5提取结果.xlsx")
3. 注意事项
- 路径替换:务必将
target_folder替换为你实际的桌面文件夹路径 - 正则调整:如果PDF中Section标题格式有变化(比如带编号、大小写不同),修改正则表达式即可。例如匹配带编号的
Section 5: xxx,可调整为r"Section 5[:\s]*(.*?)\nSection 6[:\s]" - 性能优化:处理1000份PDF时,可添加进度打印(比如
print(f"正在处理:{file_name}")),方便跟踪进度 - 异常处理:若个别PDF提取失败,可在代码中添加
try-except块跳过异常文件,避免中断批量处理
内容的提问来源于stack exchange,提问作者FMS
相关产品推荐
相关产品推荐

