如何使用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
相关产品推荐
相关产品推荐

