Python os.walk跳过具有特定名称而不是路径的目录

Jac*_*ird 1 python os.walk

所以我有一个文件系统,我希望能够使用python检查和更新.我的解决方案是os.walk但是我的需求和我的文件系统会出现问题.这是目录的布局方式:

Root
dir1
    subdir
        1
        2
        3...
    file1
    file2
dir2
    subdir
        1
        2
        3...
    file1
    file2
...
Run Code Online (Sandbox Code Playgroud)

主目录有不同的名称,因此"dir1"和"dir2"但其中的目录具有相同的名称,并包含许多不同的文件和目录.子目录是我想从os.walk中排除的,因为它们添加了不必要的计算.

有没有办法根据目录的名称而不是路径从os.walk中排除目录,还是我需要做其他事情?

kin*_*all 7

os.walk允许您修改它为您提供的目录列表.如果你拿出一些,它将不会进入那些目录.

for dirpath, dirnames, filenames in os.walk("/root/path"):
    if "subdir" in dirnames:
        dirnames.remove("subdir")
    # process the files here
Run Code Online (Sandbox Code Playgroud)

(请注意,如果使用自下而上的扫描方式,则不起作用.自上而下的样式是默认样式.)

请参阅文档