You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python批量从PDF提取结构化需求至Excel?

批量提取PDF编号需求并导出到Excel的Python脚本

先安装所需依赖:

pip install PyPDF2 pandas openpyxl

以下是完整脚本,支持批量处理指定文件夹下的所有PDF,自动提取以数字+.开头的需求条目(包含下属(a)(b)(c)子项),最终导出到Excel:

import os
import re
import PyPDF2
import pandas as pd

def extract_requirements_from_pdf(pdf_path):
    # 读取PDF文本
    with open(pdf_path, 'rb') as f:
        reader = PyPDF2.PdfReader(f)
        text = ''
        for page in reader.pages:
            text += page.extract_text() or ''
    
    # 清理文本中的多余换行,避免子项被拆分
    cleaned_text = re.sub(r'\n(?!\d+\.)', ' ', text)
    
    # 匹配以"数字+."开头的需求条目,直到下一个编号或文本结束
    pattern = r'(\d+\.\s.*?)(?=\n\d+\.|\Z)'
    requirements = re.findall(pattern, cleaned_text, re.DOTALL)
    
    # 整理每条需求,去除首尾空格
    requirements = [req.strip() for req in requirements]
    
    # 返回包含文件名和需求的列表
    return [(os.path.basename(pdf_path), req) for req in requirements]

def batch_process_pdfs(pdf_folder, output_excel):
    all_data = []
    
    # 遍历文件夹下所有PDF文件
    for filename in os.listdir(pdf_folder):
        if filename.lower().endswith('.pdf'):
            pdf_path = os.path.join(pdf_folder, filename)
            print(f"正在处理:{filename}")
            pdf_data = extract_requirements_from_pdf(pdf_path)
            all_data.extend(pdf_data)
    
    # 转换为DataFrame
    df = pd.DataFrame(all_data, columns=['PDF文件名', '需求内容'])
    
    # 导出到Excel
    df.to_excel(output_excel, index=False, engine='openpyxl')
    print(f"处理完成!结果已保存到:{output_excel}")

# 配置路径
PDF_FOLDER = './需求PDF文件夹'  # 替换为你的PDF文件夹路径
OUTPUT_EXCEL = './需求汇总.xlsx'  # 替换为你的输出Excel路径

if __name__ == '__main__':
    batch_process_pdfs(PDF_FOLDER, OUTPUT_EXCEL)

关键说明:

  • 正则表达式r'(\d+\.\s.*?)(?=\n\d+\.|\Z)':专门匹配以数字+.开头的条目,(?=\n\d+\.|\Z)是正向预查,确保匹配到下一个编号条目或文本结尾就停止,自动把(a)(b)这类子项合并到对应的主需求条目中。
  • 文本清理步骤re.sub(r'\n(?!\d+\.)', ' ', text):把不是新编号开头的换行替换成空格,避免子项因为换行被拆分成单独条目。
  • 批量处理逻辑:自动遍历指定文件夹下的所有PDF,无需逐个手动处理。

如果遇到部分PDF文本提取有乱码或格式异常,可以尝试替换PyPDF2为pdfplumber(安装后替换读取文本的逻辑),它对复杂PDF的文本提取兼容性更好。

内容的提问来源于stack exchange,提问作者Isidora

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 14:40:45