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

如何在PDF提取的嵌套列表文本中删除首个“Information”前的所有内容

实现方案

核心处理逻辑

  • 对单份PDF提取得到的行文本列表,遍历查找首个包含关键词Information的行索引
  • 从该索引位置对列表做切片,仅保留关键词及之后的所有文本行
  • 增加兼容逻辑,若PDF未匹配到Information关键词则默认保留全部内容,避免报错

修改后完整代码

from io import StringIO
from pdfminer.pdfparser import PDFParser, PDFDocument
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage

pdf = [] # 存储所有PDF提取结果的外层列表
for k in range(1,90):
    output_string = StringIO()
    with open(f"G:/File ({k}).pdf", 'rb') as in_file:
        parser = PDFParser(in_file)
        doc = PDFDocument(parser)
        rsrcmgr = PDFResourceManager()
        device = TextConverter(rsrcmgr, output_string, laparams=LAParams())
        interpreter = PDFPageInterpreter(rsrcmgr, device)
        for page in PDFPage.create_pages(doc):
            interpreter.process_page(page)
    # 提取文本并按行拆分
    text = output_string.getvalue().split('\n')
    # 查找首个Information关键词的起始位置
    start_index = 0
    for idx, line in enumerate(text):
        if "Information" in line:
            start_index = idx
            break
    # 切片保留关键词及之后的内容,加入外层列表
    processed_text = text[start_index:]
    pdf.append(processed_text)

# 打印结果验证
print(pdf)

补充说明

如果需要严格匹配全词Information而不是子串匹配,可以把判断条件替换为:
if any(word == "Information" for word in line.split())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 08:51:02