PyPDF2废弃API适配:Python代码更新解决方案咨询
完整PyPDF2代码更新方案(解决废弃警告与AttributeError)
PyPDF2在2.0版本做了大规模API重构,旧的PdfFileReader、getNumPages()、getPage()、extractText()等方法全部被废弃,你的问题本质是跨环境版本不一致(Linux可能是旧版,Windows装了新版),直接按以下方案彻底替换所有旧API即可:
核心API替换清单
- 替换
from PyPDF2 import PdfFileReader→from PyPDF2 import PdfReader - 替换
reader.getNumPages()→len(reader.pages) - 替换
reader.getPage(index)→reader.pages[index] - 替换
page.extractText()→page.extract_text()
完整更新示例
旧代码(触发废弃警告/报错)
from PyPDF2 import PdfFileReader def extract_pdf_text(file_path): # 旧方式打开文件 reader = PdfFileReader(file_path) page_count = reader.getNumPages() full_text = "" for page_num in range(page_count): page = reader.getPage(page_num) full_text += page.extractText() return full_text
新代码(适配PyPDF2 2.x+,无废弃警告)
from PyPDF2 import PdfReader def extract_pdf_text(file_path): # 用with语句安全管理文件句柄(跨Linux/Windows通用) with open(file_path, "rb") as pdf_file: reader = PdfReader(pdf_file) page_count = len(reader.pages) full_text = "" for page_num in range(page_count): # 直接通过索引访问pages列表获取页面 page = reader.pages[page_num] # 使用新的extract_text()方法提取文本 full_text += page.extract_text() return full_text
额外注意事项
- 统一PyPDF2版本:在Windows和Linux都执行
pip install --upgrade PyPDF2,确保版本一致(≥2.0) - 避免硬编码文件路径:Windows路径用反斜杠时注意转义(比如
C:\\test.pdf),或直接用正斜杠C:/test.pdf实现跨平台兼容 - 异常处理:可以添加
FileNotFoundError、PyPDF2.errors.PdfReadError等异常捕获,增强代码健壮性
内容的提问来源于stack exchange,提问作者VicRam0001
相关产品推荐
相关产品推荐

