Python如何从给定文件路径列表中提取指定中间层级的文件夹名称
Python提取指定路径文件夹的实现方法
你给出的示例路径均符合 根目录/待提取目录/templates/文件 的固定层级结构,可通过以下两种方式实现:
方法1:字符串分割(简单直接,适合固定格式路径)
直接用split('/')方法按分隔符切割路径,取索引为1的元素即可:
paths = [ "folder1/folder2/templates/xyz.yaml", "folder1/folderx/templates/abc.yaml" ] target_folders = [] for path in paths: # 按斜杠分割后,索引1的位置就是目标文件夹 parts = path.split("/") target_folders.append(parts[1]) print(target_folders) # 输出 ['folder2', 'folderx']
方法2:pathlib模块处理(更规范,支持跨平台路径)
如果需要兼容Windows、Linux不同系统的路径分隔符,推荐用Python标准库的pathlib处理:
from pathlib import Path paths = [ "folder1/folder2/templates/xyz.yaml", "folder1/folderx/templates/abc.yaml" ] target_folders = [] for path_str in paths: path = Path(path_str) # parts属性返回路径所有层级的元组,取索引1的元素 target_folders.append(path.parts[1]) print(target_folders) # 输出 ['folder2', 'folderx']
如果实际路径层级不固定,你要提取的是templates的上一级目录,可以调整逻辑为定位templates的索引再减1,适配性更强:
for path_str in paths: parts = path_str.split("/") # 找到templates的下标,上一级就是目标目录 template_idx = parts.index("templates") target_folders.append(parts[template_idx - 1])
内容的提问来源于stack exchange,提问作者Rishi
相关产品推荐
相关产品推荐

