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

Python遍历目录如何仅列出文件夹名称而不输出完整路径

解决方案:Python列出指定目录下文件夹时仅输出文件夹名称

问题原因

你当前脚本中print(d)输出的是os.path.join()拼接后的完整绝对路径,因此会展示全路径内容。os.listdir()本身返回的就是目标目录下各级文件/文件夹的短名称(不带前置路径),只需要调整打印的变量即可。


方法1:直接打印os.listdir()返回的原始名称

判断文件夹类型时仍然需要拼接完整路径给os.path.isdir()做校验,打印时直接输出遍历得到的原始文件名即可:

import os

rootdir = r"V:\DATABASES\0 Suspension\Suspensia Pictures" # 替换为你的目标目录,Windows路径前加r避免反斜杠转义问题
for file in os.listdir(rootdir):
    d = os.path.join(rootdir, file)
    if os.path.isdir(d):
        print(file)

运行后输出效果:

X01BJ0004
X01BJ0005
X01BJ0006
X01BJ0008
X01BJ0026
X01BJ0037
X01BJ0038
X01BJ0039
X01BJ0735

方法2:从完整路径中提取末尾文件夹名

如果你后续逻辑需要用到完整路径、不想调整打印变量,可以用os.path.basename()直接从完整路径里截取最后一级的名称,效果和方法1完全一致:

import os

rootdir = r"V:\DATABASES\0 Suspension\Suspensia Pictures"
for file in os.listdir(rootdir):
    d = os.path.join(rootdir, file)
    if os.path.isdir(d):
        print(os.path.basename(d)) # 提取路径最后一段的名称

方法3:使用pathlib模块(Python3.4+推荐写法)

标准库pathlib是Python3之后推出的面向对象路径处理模块,不需要手动拼接路径,通过属性即可直接获取文件夹名,写法更简洁不易出错:

from pathlib import Path

rootdir = Path(r"V:\DATABASES\0 Suspension\Suspensia Pictures")
for item in rootdir.iterdir():
    if item.is_dir():
        print(item.name) # .name属性直接返回不带路径的文件/文件夹名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 18:45:41