You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyPDF2 3.0.0统计目录PDF页数报错问题求助

解决PyPDF2 3.x统计PDF页数及遍历目录的问题

错误原因分析

你最后遇到的AttributeError: 'PdfReader' object has no attribute 'len',是因为误把内置函数len()写成了对象的属性调用(比如reader.len()),正确的写法是用len(reader.pages)来获取页数。

正确实现代码

下面是适配PyPDF2 3.x版本的完整脚本,能遍历指定目录下所有PDF文件并统计页数:

from pathlib import Path
from PyPDF2 import PdfReader

# 指定要遍历的目录,这里用当前目录,可自行修改
target_dir = Path(".")

# 遍历目录下所有PDF文件(含子目录)
for pdf_path in target_dir.rglob("*.pdf"):
    try:
        # 初始化PdfReader实例
        reader = PdfReader(pdf_path)
        # 获取页数:通过内置len()函数读取pages属性的长度
        page_count = len(reader.pages)
        print(f"文件: {pdf_path.name},页数: {page_count}")
    except Exception as e:
        print(f"处理文件 {pdf_path.name} 时出错: {str(e)}")

关键修改点说明

  • 导入PdfReader替代旧版的PdfFileReader
  • 获取页数时,使用len(reader.pages),而非已弃用的reader.getNumPages()或错误的reader.len()
  • 用pathlib.Path的rglob方法可递归遍历子目录下的所有PDF文件,写法比os模块更简洁直观

额外提示

  • 若之前安装的是PyPDF2旧版本,执行pip install --upgrade PyPDF2更新到3.x版本
  • 脚本中的异常处理可避免因损坏的PDF文件导致程序终止,适合批量处理场景

内容的提问来源于stack exchange,提问作者Assassin47

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 21:37:08