Я знаю, что я могу удалить из 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]
Я хочу сделать противоположное этому, так только сохранить в списке. Я попробовал несколько вариантов, но безуспешно. Любые указатели будут оценены.
Я заинтересован в двух уровнях вниз, поэтому я взял комментарии и создал глобальные переменные для вспомогательных уровней и использую следующий код.
Ожидаемые Функциональность
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
да есть. Я обновил свой вопрос, чтобы надеяться на объяснение abit better – iNoob
Пробовал ли вы 'dirs [:] = [d for d in dirs if d in keep]'? что ты получил? –