查找特定上层目录

时间:2017-05-16 16:00:35

标签: python python-3.x file os.walk

目标:我正在尝试查找特定文件名的绝对路径。

场景:我的脚本是在一些(伟大的)宏观目录中执行的,而我的文件位于同一个(伟大的......) - 父目录中的某个位置。

问题:

E:
├───Directory
│   └───Sub Directory
└───Grandparent Folder
    ├───Parent Directory
    │   └───script.py
    └───Other Parent Directory
        └───MyFile.txt
  1. 好父目录经常被移动。所以父目录的绝对路径是未知的。

  2. 脚本在big-parent目录中大量移动并更改了该目录中的文件级别,所以我不能只使用'../../..'来启动父目录。

  3. 我正在寻找的文件在大父目录中移动了很多。

  4. 一旦我有了父目录的绝对路径,我就可以os.walk()找到我的文件。

    尝试:我的下面的内容有效,但我必须想象这是一个很常见的问题,因为我不知道有一个内置的os命令。

    import os
    
    parent_folder = 'Grandparent Folder'
    search_file = 'MyFile.txt'
    
    # Get absolute path of grandparent directory.
    current_path = os.getcwd()
    parent_path = current_path.split(parent_folder)[0] + parent_folder
    
    # os.walk() from grandparent down until file is found.
    filepath= ''
    for root, dirs, files in os.walk(parent_path):
        for file in files:
            if file == search_file:
                filepath = '\\'.join([root, file])
    

1 个答案:

答案 0 :(得分:0)

尝试使用pythons glob模块来查找路径名。您可以在官方文档中找到详细信息。这样,即使目录移动,您也可以每次都找到路径。