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

Python批量扁平化子文件夹PDF报错:AttributeError问题求助

问题原因与解决方案

报错原因

  • 非PDF文件被误处理:批量遍历子文件夹时未过滤文件后缀,导致加载了非PDF格式的文件,PdfDocument.Load()返回None,后续调用IsFlatten属性时触发AttributeError。
  • 文件路径拼接错误:遍历子文件夹时路径拼接逻辑有误,传入无效路径导致PDF加载失败,返回None。
  • 文件权限或损坏:子文件夹中的部分PDF文件存在读取权限限制,或文件本身已损坏,加载时返回None。

修复步骤

  • 严格过滤PDF文件:遍历文件时仅保留后缀为.pdf(包含大小写变体,如.PDF)的文件,示例代码:
import os

for root, dirs, files in os.walk("."):
    for file in files:
        if file.lower().endswith(".pdf"):
            file_path = os.path.join(root, file)
            # 后续处理逻辑
  • 增加加载有效性判断:每次加载PDF后先检查是否成功加载,避免对None对象执行操作:
from spire.pdf import PdfDocument

doc = PdfDocument.Load(file_path)
if doc is not None:
    # 执行你的处理逻辑,例如设置IsFlatten属性
    doc.IsFlatten = True
    doc.SaveToFile(os.path.join(root, f"处理后_{file}"))
    doc.Close()
else:
    print(f"无法加载文件:{file_path}")
  • 检查异常文件状态:对于加载失败的文件,手动打开确认是否损坏,或调整文件的读取权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 10:50:56