如果路径包含文件夹,如何提取路径



让我们说一些像这样的路径:

C:/Test/path_i_need/test2/test3/test4
C:/Test/test2/path_i_need/test3
C:/Test/test2/test3/path_i_need/test4

如何使用python提取每个场景中所需的路径,例如:

C:/Test/path_i_need
C:/Test/test2/path_i_need
C:/Test/test2/test3/path_i_need

所以基本上我不知道path_i_need之前或之后有多少子文件夹,我只需要那个路径,我不在乎后面是什么。

您可以从根目录进行DFS(深度优先搜索(,直到找到您要查找的所有路径:

from os import listdir, path
ROOT_DIR = "./example"
FLAG = "example1"
found_dirs = []
def find_dirs(p):
subdirs = listdir(p)
for subdir in subdirs:
curdir = path.join(p, subdir)
if subdir == FLAG:
found_dirs.append(curdir)
elsif path.isdir(curdir):
find_dirs(curdir)
find_dirs(ROOT_DIR)

尝试此操作,不使用os模块或任何导入:

paths = """
C:/Test/path_i_need/test2/test3/test4
C:/Test/test2/path_i_need/test3
C:/Test/test2/test3/path_i_need/test4
""".strip().split('n')
need_this_path = 'path_i_need'
len_that_which_i_need = len(need_this_path)
extracted_paths = [p[:p.index(need_this_path) + len_that_which_i_need] for p in paths]
print(*extracted_paths, sep='n')

输出:

C:/Test/path_i_need
C:/Test/test2/path_i_need
C:/Test/test2/test3/path_i_need

最新更新