我正在尝试遍历目录树并排除某些目录。现在,根据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
我缺少什么?
答案 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