python walk目录树,不包括某些目录

时间:2013-06-26 09:40:39

标签: python

我正在尝试遍历目录树并排除某些目录。现在,根据os.walk exclude .svn folders例如,我应该能够修改'dirs'列表,然后让我修剪树。我尝试了以下方法:

import sys
import os

if __name__ == "__main__":

    for root, dirs, files in os.walk("/usr/lib"):
        print root
        dirs = []

我原本希望不要输入任何子目录,但我这样做:

/usr/lib
/usr/lib/akonadi
/usr/lib/akonadi/contact
/usr/lib/akonadi/contact/editorpageplugins
/usr/lib/os-prober
/usr/lib/gnome-settings-daemon-3.0
/usr/lib/gnome-settings-daemon-3.0/gtk-modules
/usr/lib/git-core
/usr/lib/git-core/mergetools
/usr/lib/gold-ld
/usr/lib/webkitgtk-3.0-0
/usr/lib/webkitgtk-3.0-0/libexec

我缺少什么?

3 个答案:

答案 0 :(得分:1)

dirs = []

重新绑定本地名称dirs。您可以修改列表的内容,例如。像这样:

dirs[:] = []

答案 1 :(得分:1)

尝试以下其中一项

dirs[:] = []

OR

del dirs[:]

答案 2 :(得分:0)

root给出了整个路径,而不仅仅是您从哪里开始。

文档让它更清楚地了解它在做什么:

for dirpath, dirnames, filenames in os.walk('/usr/lib'):
    print dirpath

See the docs here