Вы можете сделать это, просто изменив, т. Е. Удалив исключенные каталоги из subdirectory list
inplace(note this word)
, полученного с помощью os.walk()
. Вы можете сделать это несколькими способами (я имею в виду удаление на месте):
Сначала напишите это поверх своего кода:
import os
root = "the/path/to/root/dir";
exclude_dir_set = set(['some_dir', 'another_some_dir`])
Первый метод :
for current_dir, dirs, files in os.walk(root):
dirs[:] = list(set(dirs) - exclude_dir_set)
второй метод:
for current_dir, dirs, files in os.walk(root):
dirs[:] = [_dir for _dir in dirs if _dir not in exclude_dir_set]
третий метод:
for current_dir, dirs, files in os.walk(root):
for _dir in dirs:
try:
if _dir in exclude_dir_set:
dirs.remove(_dir)
except ValueError:
pass # do nothing
Если у вас есть вопросы, пожалуйста, спросите в комментарии ...