Более быстрый способ обхода каталога вместо os.listdir?Python

Программы на Python
Ответить
Anonymous
 Более быстрый способ обхода каталога вместо os.listdir?

Сообщение Anonymous »

Я пытаюсь улучшить производительность elfinder, файлового менеджера на основе ajax (elRTE.ru).

Он использует os.listdir в рекурсивном режиме для обхода всех каталоги рекурсивно и имеют снижение производительности (например, перечисление каталога с 3000+ файлами занимает 7 секунд)..

Я пытаюсь улучшить производительность для этого, вот это функция ходьбы:

Код: Выделить всё

        for d in os.listdir(path):
pd = os.path.join(path, d)
if os.path.isdir(pd) and not os.path.islink(pd) and self.__isAccepted(d):
tree['dirs'].append(self.__tree(pd))
Мои вопросы:
  • Если я изменю os.walk вместо os .listdir, повысит ли это производительность?
  • как насчет использования dircache.listdir()? кэшировать ВЕСЬ содержимое каталога/подкаталога при первоначальном запросе и возвращать результаты кэширования, если в файле не загружены новые файлы или нет изменений?
  • Есть ли какой-либо другой более быстрый метод обхода каталога?
  • Любой другой файловый браузер на стороне сервера, который быстро написан на Python (но я предпочитаю сделать этот быстрый)?


Подробнее здесь: https://stackoverflow.com/questions/316 ... os-listdir
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»