gpt4 book ai didi

python - 让 os.walk 以非标准方式工作

转载 作者:太空狗 更新时间:2023-10-29 21:56:42 26 4
gpt4 key购买 nike

我正在尝试按以下顺序执行以下操作:

使用os.walk() 向下走每个目录。
每个目录都有子文件夹,但我只对第一个子文件夹感兴趣。所以目录看起来像:

/home/RawData/SubFolder1/SubFolder2

例如。我希望在 RawData2 中有停止在 SubFolder1 级别的文件夹。

问题是,os.walk() 似乎遍历了所有 RawData 文件夹,我不确定如何让它停止。

以下是我到目前为止所拥有的 - 我已经尝试了一些其他的组合,用变量 dirs 替换根目录或文件,但这似乎并没有得到我想要的东西。

import os 

for root, dirs, files in os.walk("/home/RawData"):

os.chdir("/home/RawData2/")
make_path("/home/RawData2/"+str(dirs))

最佳答案

我建议您改用 glob。

正如 glob 上的帮助描述的那样:

glob(pathname)
Return a list of paths matching a pathname pattern.

The pattern may contain simple shell-style wildcards a la
fnmatch. However, unlike fnmatch, filenames starting with a
dot are special cases that are not matched by '*' and '?'
patterns.

因此,您的模式是每个一级目录,我认为应该是这样的:

/root_path/*/sub_folder1/sub_folder2

因此,您从根目录开始,获取第一层中的所有内容,然后查找 sub_folder1/sub_folder2。我认为可行。

综合起来:

from glob import glob

dirs = glob('/root_path/*/sub_folder1/sub_folder2')

# Then iterate for each path
for i in dirs:
print(i)

关于python - 让 os.walk 以非标准方式工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33189128/

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