Python 如何找到只有子目录';她叫什么名字?

Python 如何找到只有子目录';她叫什么名字?,python,Python,我想将文件移动到子目录中。子目录位于多个子目录中。我只有父目录的名称和希望文件进入的子目录的名称。我不知道父目录和目标子目录之间的子目录,需要找到该子目录及其绝对路径所在的位置,以便将文件移动到该子目录中 我尝试了os.path.isdir()和os.path.exists()来搜索我的子目录,但搜索似乎并没有搜索到所有子目录 import os def find_dir(name, start): for root, dirs, files in os.walk("."):

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

我尝试了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,并输出绝对路径。

类似的内容

布局:

.
  -> dir1
         -> dir2
                -> first.last-0000
代码:

结果:

C:\Users\me\Desktop\peopleTest\dir1\dir2\first.last-0000
像这样的

布局:

.
  -> dir1
         -> dir2
                -> first.last-0000
代码:

结果:

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

您需要自己递归搜索子目录,直到找到所搜索的项目或没有子目录可搜索。如果debian您可以使用
调用(“find filename\u You\u earching.for”)
然后解析result@ThunderHorn鉴于Python是一种跨平台语言,对于非平台特定的问题,使用平台特定的代码是没有意义的。您需要自己递归地搜索子目录,直到找到所搜索的项目或没有子目录可搜索。如果debian可以使用
调用(“查找文件名\u您正在\u搜索.for”),您正在运行什么操作系统
然后分析result@ThunderHorn考虑到Python是一种跨平台语言,使用平台特定的代码来解决非平台特定的问题是没有意义的。如果需要的话,在找到文件后可能
break
:)@AKX我通常会在函数中执行,因此返回而不是打印。确定。重点是,在树的其余部分穿行是没有用的。@tgikal-是的,这就是我要寻找的逻辑。但我的代码没有输出结果。我将编辑我的问题,以显示我在这方面的能力point@austin最新的编辑应该适用于该布局。(旁注
dir
是一个python关键字,应该避免。)如果需要的话,在找到文件后可能会
break
:)@AKX我通常会在函数中执行,因此返回而不是打印。确定。重点是,在树的其余部分穿行是没有用的。@tgikal-是的,这就是我要寻找的逻辑。但我的代码没有输出结果。我将编辑我的问题,以显示我在这方面的能力point@austin最新的编辑应该适用于该布局。(旁注
dir
是一个python关键字,应该避免使用。)