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

Python如何从多格式文件夹中自动提取唯一PDF文件名存入变量

问题背景

需要使用Python实现以下需求:在包含.doc、.txt、.html等多种不同扩展名文件的文件夹中,仅提取其中的PDF文件或PDF文件名存入变量。

场景示例

假设桌面存在Mandar、html两个文件夹,在html文件夹中放入任意PDF文件并命名为'dell',在Mandar文件夹中创建demo.py文件;同时在html文件夹中按需创建2-4个txt文件,此时html文件夹内包含若干txt文件与仅1个PDF文件。

初始测试代码如下:

import os
import PyPDF2  # install via 'pip install PyPDF2'

# Put location of your pdf file i.e. dell.pdf in 'location' variable
location = "C:/Users/Desktop/html/"  
n = "dell.pdf"
path = os.path.join(location, n)

reader = PyPDF2.PdfReader(path)
pages = len(reader.pages)

print(f"The no. of pages in {n} is {pages}.")

运行上述代码将输出:The no. of pages in dell.pdf is NUM.,其中NUM为对应PDF文件的总页数。

具体需求

已知html文件夹内始终仅存放1个PDF文件,文件名不固定(可为dell、ecc或任意名称),需要实现自动将该PDF文件名赋值给变量n,无需手动修改代码中的文件名配置,即可让程序正常运行,输出对应PDF文件的名称与页数。


实现方法

直接遍历目标文件夹,筛选后缀为PDF的文件即可,已知文件夹内只有1个PDF,取匹配到的第一个结果就能用。
修改后的完整代码:

import os
import PyPDF2  # 依赖安装命令:pip install PyPDF2

# 配置目标文件夹路径
location = "C:/Users/Desktop/html/"  

# 遍历文件夹,筛选所有PDF后缀的文件
pdf_list = [f for f in os.listdir(location) if f.lower().endswith(".pdf")]

# 取唯一的PDF文件名赋值给n
n = pdf_list[0]
path = os.path.join(location, n)

reader = PyPDF2.PdfReader(path)
pages = len(reader.pages)

print(f"The no. of pages in {n} is {pages}.")

逻辑说明

  • 用os.listdir()获取目标路径下所有条目名称
  • 匹配后缀时加lower()是为了兼容大写后缀的PDF文件(比如后缀为.PDF的文件也能被识别到)
  • 由于明确知道文件夹内只有1个PDF,不需要做多文件判断,直接取列表第一个元素即可

内容的提问来源于stack exchange,提问作者Mandar Arun Bedi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 08:15:32