os.walk首次查找后停止在子目录上查找

rad*_*led 5 python os.walk python-2.7

我需要在目录中首次显示repository.config文件,并停止在子目录中查找。

这是我的目录树:

./WAS80/base/disk1/ad/repository.config
./WAS80/base/disk1/md/repository.config
./WAS80/base/disk2/ad/repository.config
./WAS80/base/disk3/ad/repository.config
./WAS80/base/disk4/ad/repository.config
./WAS80/base/repository.config 
./WAS80/fixpack/fp5/repository.config 
./WAS80/fixpack_suplements/fp5/repository.config
./WAS80/supplements/disk1/ad/repository.config
./WAS80/supplements/disk1/md/repository.config
./WAS80/supplements/disk2/ad/repository.config
./WAS80/supplements/disk3/ad/repository.config
./WAS80/supplements/disk4/ad/repository.config
./WAS80/supplements/repository.config

我需要用粗体显示的内容,然后停止在子目录中查找。

我开始修改此代码,但无法弄清楚。

pattern='repository.config'
path='/opt/was_binaries'

    def find_all(name, path):
            result = []
            for root, dirs, files in os.walk(path):
                    if name in files:
                            result.append(os.path.join(root, name))
                            continue

            return result
Run Code Online (Sandbox Code Playgroud)

hir*_*ist 8

这应该做你想要的:

import os

res = []

for here, dirs, files in os.walk(startdir, topdown=True):
    if 'repository.config' in files:
        res.append(os.path.join(here, 'repository.config'))
        dirs[:] = []

print(res)
Run Code Online (Sandbox Code Playgroud)

每当遇到'repository.config'文件时,请将设置dirs[],以防止os.walk进一步下降到该目录树中。