Если сделать листинг каталога и прочитать файлы внутри, в какой момент производительность yield начинает ухудшаться по сравнению с возвратом списка всех файлов в каталоге?
Здесь я предполагаю, что у одного достаточно ОЗУ для возврата (потенциально огромного) списка.
PS У меня проблемы с встраиванием кода в комментарий, поэтому я приведу здесь несколько примеров.
def list_dirs_list():
# list version
return glob.glob(/some/path/*)
def list_dirs_iter():
# iterator version
return glob.iglob(/some/path/*)
За кулисами оба вызова glob используют os.listdir, поэтому кажется, что они эквивалентны по производительности. Но этот документ на Python , кажется, подразумевает, что glob.iglob быстрее.