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

如何用PyPDFDirectoryLoader加载指定PDF列表?glob参数异常排查

解决PyPDFDirectoryLoader加载指定PDF列表的问题

问题原因

PyPDFDirectoryLoader的glob参数依赖fnmatch模块的简单通配符匹配规则,而非glob.glob支持的扩展正则/Shell风格大括号语法。你尝试的"a.pdf|b.pdf"或"[a.pdf|b.pdf|c.pdf]"写法不符合fnmatch的匹配逻辑,因此无法匹配到文件。

解决方案

方案1:逐个加载指定文件

直接使用PyPDFLoader单独加载每个目标PDF,再合并文档:

from langchain_community.document_loaders import PyPDFLoader
import os

files_to_load = ["a.pdf", "b.pdf", "c.pdf"]
pdf_dir = "./your_pdf_directory"  # 替换为你的PDF存放目录
docs = []

for file_name in files_to_load:
    file_path = os.path.join(pdf_dir, file_name)
    loader = PyPDFLoader(file_path)
    docs.extend(loader.load())

方案2:用file_filter自定义过滤逻辑

利用PyPDFDirectoryLoader继承的file_filter参数,传入一个判断函数筛选目标文件:

from langchain_community.document_loaders import PyPDFDirectoryLoader
import os

files_to_load = {"a.pdf", "b.pdf", "c.pdf"}  # 用集合提升查找效率
pdf_dir = "./your_pdf_directory"

loader = PyPDFDirectoryLoader(
    path=pdf_dir,
    file_filter=lambda file_path: os.path.basename(file_path) in files_to_load
)
docs = loader.load()

说明

  • 方案2更适合大量文件的场景,避免重复创建加载器实例
  • file_filter接收的参数是文件的完整路径,因此需要用os.path.basename()提取文件名再判断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 01:36:07