Python Glossary English

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Сообщить о неточности