gpt4 book ai didi

python - os.walk 在第一次找到后停止寻找子目录

转载 作者:太空狗 更新时间:2023-10-30 02:08:22 24 4
gpt4 key购买 nike

我需要在目录中首次出现 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

I need the ones in bold and stop looking in the subdirectories.

I started tinkering with this code, but I couldn't figure it out.

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

最佳答案

这应该做你想做的:

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)

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

注意:重要的是就地更改dirs(即dirs[:] = [])而不是重新绑定(bind)它(dirs = []).,

关于python - os.walk 在第一次找到后停止寻找子目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43618746/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com