os.path.walk
может повысить производительность по двум причинам:
1) Если вы можете прекратить ходить до того, как пройдете все, тогда это действительно будет быстрее, чем listdir
, хотя это заметно только при работе с большими деревьями
2) Если вы перечисляете ОГРОМНЫЕ каталоги, то сделать список, возвращаемый listdir
. , может быть дорого (не соответствует действительности, см. Комментарий Алекса ниже)
Тем не менее, это, вероятно, не будет иметь значения и на самом деле может быть медленнее из-за потенциально дополнительных накладных расходов, вызванных вызовом вашей функции visit
и выполнением всех дополнительных упаковок и распаковок аргументов.
(Единственный способ ответить на этот вопрос - проверить его самостоятельно - это займет всего несколько минут)