给定一个包含子目录的目录,如何找到文件的路径?

时间:2019-06-12 06:35:49

标签: python python-3.x directory io path

假设我具有以下嵌套目录结构:

my_dir
|---- dir_1
|---- dir_2
|---- dir_3
      |---- dir_4
            |---- dir_5
                  |---- dir_6
                        |---- my_file.txt

如何查看my_file.txt的任何子目录中是否存在dir_3(例如dir_4dir_5dir_6),以及存在我该如何走?目前,我尝试使用:

def file(name, path):
    for r, d, f in os.walk(abspath(path)):
        if name in files:
            return os.path.join(r, n)
    else:
         return 'file not found'

但是,以上功能是奇怪的。我该如何使用Pathlib?

2 个答案:

答案 0 :(得分:1)

删除“ else”分支,以便您可以继续遍历目录树。 然后在for循环之后,您可以返回“找不到文件”。

答案 1 :(得分:1)

使用Linux Shell命令

import os
cmd = 'find my_dir -name myfile.txt'
os.system(cmd)

这将在my_dir目录中搜索myfile.txt

或使用子流程模块:

import subprocess
subprocess.Popen(["find","my_dir","-name","myfile.txt"])