如何在os.walk中仅显示目录名称而非完整路径
实现os.walk输出目录名称而非完整路径
方法一:使用os.path.basename()(兼容所有Python版本)
如果你只需要输出起始目录的名称(即目标路径的最后一级),可以在遍历到顶层目录后终止循环:
import os target_dir = "/home/lungsang/Desktop/levelpack-UI/content/A0/1 docx-raw" for root, dirs, files in os.walk(target_dir): print(os.path.basename(root)) break # 停止遍历子目录,仅输出顶层目录名
如果需要遍历所有子目录并输出每个目录的最后一级名称,去掉break即可:
import os for root, dirs, files in os.walk("/home/lungsang/Desktop/levelpack-UI/content/A0/1 docx-raw"): print(os.path.basename(root))
方法二:使用pathlib模块(Python 3.4+ 推荐)
pathlib提供了更直观的路径操作方式:
仅输出起始目录名称:
from pathlib import Path target_dir = Path("/home/lungsang/Desktop/levelpack-UI/content/A0/1 docx-raw") print(target_dir.name)
遍历所有子目录并输出每个目录名称:
from pathlib import Path target_dir = Path("/home/lungsang/Desktop/levelpack-UI/content/A0/1 docx-raw") for dir_path in target_dir.rglob("*"): if dir_path.is_dir(): print(dir_path.name)
说明:
os.path.basename()和Path.name都会提取路径的最后一部分,正好对应你需要的目录名称。如果只需要起始目录名,添加break可以避免不必要的子目录遍历,提升效率。
内容的提问来源于stack exchange,提问作者lungsang
相关产品推荐
相关产品推荐

