使用PyPDF2读取59页PDF文本时出现报错,求解决办法
问题分析与解决方法
你的代码报错原因是索引越界:reader.pages的索引从0开始,59页PDF的索引范围是0到58。但循环里用了i+1,当i取到58时,i+1等于59,超出了pages的最大索引,导致报错。
修正后的代码
写法一:直接遍历pages对象(更简洁)
from PyPDF2 import PdfReader reader = PdfReader(r'C:\Users\Dinesh\Downloads\1r41ai10801601_fong.pdf') for page in reader.pages: text = page.extract_text() print(text)
写法二:正确使用索引循环
from PyPDF2 import PdfReader reader = PdfReader(r'C:\Users\Dinesh\Downloads\1r41ai10801601_fong.pdf') number_of_pages = len(reader.pages) for i in range(number_of_pages): page = reader.pages[i] # 用i而非i+1,匹配0起始的索引规则 text = page.extract_text() print(text)
额外注意事项
- 如果部分页面提取出空文本,大概率是PDF为扫描件(图片格式),PyPDF2无法提取这类内容,需要配合OCR工具(如pytesseract)处理。
- 确保PyPDF2为最新版本,旧版本可能存在兼容性问题,可通过
pip install --upgrade PyPDF2命令更新。
内容的提问来源于stack exchange,提问作者Dinesh
相关产品推荐
相关产品推荐

