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

时间:2016-08-13 01:45:11

标签: python os.walk

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

Root
dir1
    subdir
        1
        2
        3...
    file1
    file2
dir2
    subdir
        1
        2
        3...
    file1
    file2
...

主目录有不同的名称,因此“dir1”和“dir2”,但这些目录中的目录彼此具有相同的名称,并包含许多不同的文件和目录。子目录是我想从os.walk中排除的,因为它们会增加不必要的计算。

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

1 个答案:

答案 0 :(得分:7)

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

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

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

See the documentation