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

如何使用pypdf提取PDF文本时排除页码?

使用pypdf提取PDF文本时排除页码

针对你遇到的页码(如示例中的“5”)出现在提取文本开头的情况,可以通过对每页提取的文本做预处理来移除页码,以下是修改后的代码:

from pypdf import PdfReader

reader = PdfReader("pdf-examples/kurdish-sample-2.pdf")
full_text = ""
for page in reader.pages:
    page_text = page.extract_text()
    if not page_text:
        continue
    # 跳过开头所有连续的数字和空格,定位到有效文本起始位置
    start_pos = 0
    while start_pos < len(page_text) and (page_text[start_pos].isdigit() or page_text[start_pos].isspace()):
        start_pos += 1
    cleaned_text = page_text[start_pos:]
    full_text += cleaned_text + "\n"
print(full_text)

逻辑说明

这段代码会遍历每页文本的开头部分,跳过所有连续的数字和空格字符,从第一个非数字非空格的字符开始截取内容,从而移除页首的页码。如果你的页码格式或位置不同(比如在页尾),可以调整判断逻辑:

  • 若页码固定在页尾,可检查文本末尾的数字序列并移除
  • 若页码是带格式的(如“第5页”),可通过字符串匹配或正则表达式来定位并移除

如果只是处理页首单个数字的简单场景,也可以用更简化的写法:

from pypdf import PdfReader

reader = PdfReader("pdf-examples/kurdish-sample-2.pdf")
full_text = ""
for page in reader.pages:
    page_text = page.extract_text()
    if page_text and page_text[0].isdigit():
        # 跳过第一个数字及后续空格
        cleaned_text = page_text[1:].lstrip()
    else:
        cleaned_text = page_text or ""
    full_text += cleaned_text + "\n"
print(full_text)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 02:12:35