Python 3.5+osфункция
os.scandir
os — файловая система
Возвращает итератор os.DirEntry по элементам каталога — эффективнее listdir (кеширует stat).
Синтаксис
os.scandir(path)
Используйте как контекстный менеджер или дочитывайте до конца: незакрытый итератор держит дескриптор каталога и выдаёт ResourceWarning. Выигрыш в скорости — в том, что тип записи берётся из того же системного вызова: на Unix is_dir() и is_file() обычно не делают отдельный stat, на Windows и stat() приходит готовым. Порядок записей произвольный, '.' и '..' не выдаются.
Примеры
import os, tempfile
with os.scandir(tempfile.gettempdir()) as it:
for entry in it:
if entry.is_file():
print(entry.name, entry.stat().st_size) # → ? имя и размер файла
elif entry.is_dir():
print(entry.name + '/') # → ? имя вложенного каталога
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности