Python使用PyPDF2提取PDF文本首行索引不一致如何处理
PyPDF2统一提取页面首个有效非空行方案
实现逻辑
对\n分割后的行做空白过滤,自动跳过前置空行后取第一条内容即可适配两类PDF的提取需求,同时优化原有代码的资源泄漏问题。
可直接运行的代码
import PyPDF2 for fil in new_pdf_files: with open(fil, 'rb') as pdf_file: pdf_reader = PyPDF2.PdfFileReader(pdf_file) # 提取索引为1的页面(即第二页)文本 page_text = pdf_reader.getPage(1).extractText() # 过滤全空白行,strip()会清除行首尾的空格、换行等空白字符 valid_lines = [line for line in page_text.split("\n") if line.strip()] # 取第一个有效行,加容错避免页面无有效文本时报错 first_valid_line = valid_lines[0] if valid_lines else "" print(first_valid_line)
效果验证
针对你提供的两份示例文本:
- 带前置空行的文本过滤后首个有效内容为
PIERRE AVENIR 2 - 无前置空行的文本过滤后首个有效内容为
ADVINI
完全匹配提取需求。
内容的提问来源于stack exchange,提问作者eeco_haldia
相关产品推荐
相关产品推荐

