Я думаю, что решение на самом деле очень простое.
использовать
break
чтобы сделать только первую итерацию цикла for, должен быть более элегантный способ.
for root, dirs, files in os.walk(dir_name):
for f in files:
...
...
break
...
При первом вызове os.walk он возвращает тюльпаны для текущего каталога, затем в следующем цикле содержимое следующего каталога.
Возьмите оригинальный скрипт и просто добавьте break .
def _dir_list(self, dir_name, whitelist):
outputList = []
for root, dirs, files in os.walk(dir_name):
for f in files:
if os.path.splitext(f)[1] in whitelist:
outputList.append(os.path.join(root, f))
else:
self._email_to_("ignore")
break
return outputList