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

使用PyPDFDirectoryLoader加载PDF遇PdfReadError,求跳过或解析方案

跳过损坏PDF文件继续加载的解决方案

PyPDFDirectoryLoader在遇到损坏或无法解析的PDF时会直接抛出异常并终止整个加载流程,没有内置的跳过机制。要实现跳过异常文件、完成剩余PDF的解析,你可以手动遍历目标文件夹中的PDF文件,逐个使用PyPDFLoader加载并捕获异常:

实现代码

from langchain.document_loaders import PyPDFLoader
from pypdf.errors import PdfReadError
import os

pdf_folder_path = "你的PDF文件夹路径"
loaded_documents = []

# 遍历文件夹内所有PDF文件
for file_name in os.listdir(pdf_folder_path):
    if file_name.lower().endswith(".pdf"):
        full_path = os.path.join(pdf_folder_path, file_name)
        try:
            loader = PyPDFLoader(full_path)
            docs = loader.load()
            loaded_documents.extend(docs)
            print(f"已加载: {file_name}")
        except PdfReadError:
            print(f"跳过损坏文件: {file_name}")
        except Exception as e:
            # 捕获其他可能的异常,比如权限问题等
            print(f"处理文件 {file_name} 时出错: {str(e)},已跳过")

# loaded_documents 包含所有成功加载的文档内容

关键说明

  • 直接遍历文件能精准控制每个PDF的加载流程,单个文件的解析错误不会影响其他文件
  • 优先捕获PdfReadError可以针对性处理PDF解析相关的错误,再用Exception兜底其他意外情况
  • 这种方式完全替代PyPDFDirectoryLoader的功能,同时增加了错误容错能力

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 15:42:15