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

如何修改PyPDF2代码实现PDF关键词匹配的单次Pass/Fail输出?

PDF关键词匹配Pass/Fail判定优化

原代码会在PDF每一行未匹配到关键词时打印“Fail”,现在要改成仅当所有页面都找不到关键词时,才打印一次“Fail”,修改后的代码如下:

import PyPDF2
import re

# 创建PDF读取对象
pdf_reader = PyPDF2.PdfFileReader("shopping.pdf")
num_pages = pdf_reader.getNumPages()

print(f"This document has {num_pages} pages")

# 初始化匹配标志,默认未找到
match_found = False

for i in range(num_pages):
    page = pdf_reader.getPage(i)
    text = page.extractText()
    for line in text.splitlines():
        # 注意:re.match是从行首匹配,若要任意位置匹配用re.search
        if re.match('milk', line):
            print(f"Pass the keyword is matched on page {i}: {line}")
            match_found = True

# 遍历完所有内容后,判断是否从未匹配到关键词
if not match_found:
    print("Fail")

关键修改点:

  • 新增match_found变量跟踪匹配状态,初始设为False
  • 删除原代码中每一行不匹配就打印“Fail”的冗余逻辑,仅在找到匹配时更新标志并输出结果
  • 所有页面遍历完成后,根据match_found的最终状态决定是否打印一次“Fail”

提示:原代码用re.match('milk', line)是从行首开始匹配关键词,如果需要在文本任意位置匹配,建议替换为re.search(r'milk', line)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 04:32:08