2013-06-26 91 views
0

我想要散步目錄樹並排除某些目錄。現在,根據os.walk exclude .svn folders例如,我應該能夠修改'dirs'列表,然後讓我修剪樹。我試過如下:python散步目錄樹,排除某些目錄

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 

我在想什麼?

回答

1

嘗試以下

dirs[:] = [] 

OR

del dirs[:] 
之一
0

root給出了整個路徑,而不僅僅是你開始的根。

的文檔使得它更有點清楚它在做什麼:

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

See the docs here

0
dirs = [] 

重新綁定本地名稱dirs。您可以修改列表的內容,例如。像這樣:

dirs[:] = []