如何提取路径字符串中的最后两个子文件夹名称?
提取路径中最后两个子文件夹的通用方案
针对批量提取路径最后两个子文件夹的需求,以下两种通用方法可替代固定长度切片,适配任意层级的路径结构:
方法一:字符串分割处理
直接将路径按斜杠分割,过滤空元素后取最后两个片段:
path = "//users/ftac/tref/arc-D41234/fds89gsa8asdfas0sgfsaajajgsf6shjksa6" # 按斜杠分割路径,过滤空字符串(处理开头//或末尾/的情况) path_parts = [part for part in path.split('/') if part] # 取倒数第二和最后一个元素 b, a = path_parts[-2], path_parts[-1] print(f"a = {repr(a)}, b = {repr(b)}")
输出:
a = "fds89gsa8asdfas0sgfsaajajgsf6shjksa6", b = "arc-D41234"
逻辑直观,无需额外依赖库,适用于Unix风格路径场景。
方法二:使用os.path模块(跨平台兼容)
若需兼容不同操作系统的路径分隔符(Windows的\或Unix的/),推荐用Python内置os.path模块处理:
import os path = "//users/ftac/tref/arc-D41234/fds89gsa8asdfas0sgfsaajajgsf6shjksa6" # 移除路径末尾斜杠,避免拆分出空字符串 clean_path = path.rstrip('/') # 第一次拆分得到最后一个部分a及其父目录 parent_dir, a = os.path.split(clean_path) # 拆分父目录得到倒数第二个部分b _, b = os.path.split(parent_dir) print(f"a = {repr(a)}, b = {repr(b)}")
输出结果与方法一一致,且能自动适配不同系统路径格式,鲁棒性更强。
两种方法均不依赖固定字符串长度,无论路径前缀层级、目标子串长度如何变化,都能准确提取最后两个子文件夹名称。
内容的提问来源于stack exchange,提问作者Joss Fres
相关产品推荐
相关产品推荐

