首页 > 解决方案 > 如何仅使用子目录的名称查找特定深层子目录的路径?

问题描述

我想将文件移动到子目录中。该子目录位于多个子目录中。我只有父目录的名称和我希望文件进入的子目录的名称。我不知道父目录和目标子目录之间的子目录,并且需要找到该子目录及其绝对路径的位置,以便我可以将文件移动到该子目录中。

我试过 os.path.isdir() 和 os.path.exists() 来搜索我的子目录,但搜索似乎没有搜索到所有子目录。

    import os

def find_dir(name, start):
    for root, dirs, files in os.walk("."):
        for d in dirs:
            if d == name:
                return os.path.abspath(os.path.join(root, d))

subdir_name = 'Shanahan,Austin-1234'
starting_dir = r'C:\Users\austin.shanahan\Desktop\PeopleTest'

print(find_dir(subdir_name, starting_dir))   # returns "None"  

***在 PeopleTest 目录的深处有一个名为 Shanahan,Austin-1234 的子目录。在目录 PeopleTest 和子目录 Shanahan,Austin-1234 之间有两个子目录。我需要在所有这些中找到 Shanahan,Austin-1234 并输出绝对路径。

标签: python

解决方案


像这样的东西?

布局:

.
  -> dir1
         -> dir2
                -> first.last-0000

代码:

import os

def find_dir(name, start):
    for root, dirs, files in os.walk(start):
        for d in dirs:
            if d == name:
                return os.path.abspath(os.path.join(root, d))

subdir_name = 'first.last-0000'
starting_dir = 'C:/users/me/desktop/peopleTest'

print(find_dir(subdir_name, starting_dir))

结果:

C:\Users\me\Desktop\peopleTest\dir1\dir2\first.last-0000

推荐阅读