Он использует 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
Мобильная версия