TGViewer
Python Заметки Python Заметки @pythonotes · 2.2K subscribers
Post #361 2.54K
PEP471 добавил в Python3.5 в модуль os новую функцию scandir()

▫️это генератор с соответствующими возможностями
▫️возвращает не просто строку а объект DirEntry
▫️работает в 4-10 раз быстрей чем os.listdir и os.walk

Раньше это была отдельная библиотека, которая позже стала частью CPython, как и ряд других новых библиотек в Python 3.

В настоящий момент метод Path.iterdir() всё еще использует os.listdir().
Обёртка, заставляющая обычную функцию работать как генератор

def iterdir(self):
for name in os.listdir(self):
yield self._make_child_relpath(name)


В тоже время Path.glob() и Path.rglob() уже используют os.scandir(), то есть полноценные генераторы.

#libs
Python Enhancement Proposals (PEPs) PEP 471 – os.scandir() function – a better and faster directory iterator | peps.python.org This PEP proposes including a new directory iteration function, os.scandir(), in the standard library. This new function adds useful functionality and increases the speed of os.walk() by 2-20 times (depending on the platform and file system) by avoiding...
  • 👍 8
  • 🔥 3
More from @pythonotes
  1. Sep 21, 2026­ WebAssembly это мощная технология позволяющая загружать практически любое приложение в б…
  2. Aug 17, 2026Не так давно столкнулся с API который в ответе с ошибкой присылал только статус-код. Без п…
  3. Jul 20, 2026У меня основная ОС это Linux. Но нередко требуется делать сборку клиента под Windows. Соби…
  4. Jul 13, 2026В прошлый раз был пример с понижением привелегий процесса. Проблема в том, что обратно под…
  5. Jul 6, 2026Модуль pwd может использоваться для считывания информации о пользователях из базы данных п…
  6. Jun 22, 2026Недавно я реализовал Multi Tenancy систему на FastAPI + SQLAlchemy и пересобрал её в небол…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →