使用Python提取PDF文本时删除每页前5行的实现方法咨询
两种实现方式都支持,优先推荐在文本提取阶段直接过滤,不需要额外存储全量分页文本,执行效率更高。
方案1:提取阶段直接过滤
读取单页文本后直接按换行符拆分,跳过前5行后再拼接进总文本即可,修改后的代码如下:
import PyPDF2 fileReader = PyPDF2.PdfFileReader(file) s = "" # 保留你原来从第3页(索引为2)开始读取的逻辑 for i in range(2, fileReader.numPages): page_text = fileReader.getPage(i).extractText() # 按换行符拆分单页文本为行列表 lines = page_text.splitlines() # 跳过前5行后重新拼接为单页文本,避免页面行数不足5行报错 filtered_page = "\n".join(lines[5:]) s += filtered_page
方案2:全量提取后后置处理
如果已经完成全量提取,需要提前存储每页的独立文本(不能直接合并所有页内容,否则无法区分每页的开头边界),再逐页过滤后合并,示例代码如下:
# page_text_list为提前存储的每页原始文本列表 s = "" for page_text in page_text_list: lines = page_text.splitlines() s += "\n".join(lines[5:])
注意:如果PDF存在排版导致的软换行(单句文本被拆分为多个行),可以先对每页文本做段落归一化处理,再按实际段落删除前5段,避免误删正文内容。
内容的提问来源于stack exchange,提问作者huy
相关产品推荐
相关产品推荐

