PyPDF2拆分PDF报错:reader.numPages已弃用,如何修复?
修复PyPDF2拆分PDF时的DeprecationError错误
你的报错已经明确指出了问题核心:PyPDF2 3.0.0版本移除了reader.numPages属性,要求改用len(reader.pages)获取PDF总页数。除此之外,旧版本的getPage(i)方法也已被弃用,需要换成pages[i]访问指定页面。
修复后的完整脚本如下:
#!/usr/bin/python3 from PyPDF2 import PdfWriter, PdfReader inputpdf = PdfReader(open("/pdf2xls/split_pdf/xyz.pdf", "rb")) for i in range(len(inputpdf.pages)): output = PdfWriter() output.add_page(inputpdf.pages[i]) with open("/pdf2xls/split_pdf/xyz-page%s.pdf" % (i+1), "wb") as outputStream: output.write(outputStream)
关键修改点:
- 将
PdfFileWriter改为PdfWriter(PyPDF2 3.x的新命名,旧名称虽暂兼容,但推荐使用标准新API) - 用
len(inputpdf.pages)替代inputpdf.numPages获取总页数 - 用
inputpdf.pages[i]替代inputpdf.getPage(i)获取单页 - 用
add_page()替代addPage()(遵循PyPDF2 3.x的小写命名规范)
修改后脚本可适配PyPDF2 3.0.0及以上版本,顺利完成PDF拆分。
内容的提问来源于stack exchange,提问作者linux01
相关产品推荐
相关产品推荐

