我知道我可以從os.walk使用沿着瀏覽特定迪爾斯過濾器與os.walk
for root, dirs, files in os.walk('/path/to/dir'):
ignore = ['dir1', 'dir2']
dirs[:] = [d for d in dirs if d not in ignore]
我想做的這個相反的東西行刪除迪爾斯,所以只保留列表中的dirs。我嘗試了一些變化,但無濟於事。任何指針將不勝感激。
我很感興趣的是迪爾斯2級了,所以我採取的意見和創建的全局變量子水位和我使用下面的代碼。
預期功能
for root, dirs, files in os.walk(global_subdir):
keep = ['dir1', 'dir2']
dirs[:] = [d for d in dirs if d in keep]
for filename in files:
print os.path.join(root, filename)
我不是100%確定您要問什麼,但您是否試過將「不在」改爲「在」? – Kevin
是的,我有。我已經更新了我的問題,希望能解釋更好 – iNoob
您是否嘗試過'dirs [:] = [d for d in dirs if d in keep]''?你得到了什麼? –