2014-12-02 2 views
0

Я пытаюсь использовать os.listdir ('somefilepath') для отображения файлов на сетевом диске. Несмотря на то, что количество файлов не слишком велико (около 3000 небольших файлов в каталоге), задача просто берет навсегда/не заканчивается. Когда я смотрю на диспетчер задач, python требует все большего объема памяти для выполнения задачи.os.listdir() в Python при перечислении файлов с сетевого диска использует слишком много памяти/занимает много времени

Я попытался использовать os.walk вместо этого, glob.glob/glob.iglob, но это не помогает. Есть ли проблема с задержкой сети? Каков наилучший способ проверки?

+0

3000 файлов будет очень быстро найти на диске. Проблема, которую вы описываете, почти наверняка связана с латентностью сети. – CoryKramer

+0

Спасибо. Можете ли вы порекомендовать инструмент, желательно через python, который я могу использовать для проверки? – user3438258

+0

желательно? на самом деле вы хотите, чтобы инструмент, отличный от python, проверял, что поведение не имеет ничего общего с python. как насчет добрых старых 'ls/dir'? –

ответ

0

Попробуйте использовать scandir, который доступен на Python 3. Он должен работать лучше.

код может выглядеть примерно так:

import os 

file_list = os.scandir('your_dir_path') 

см scandir 1.3 и PEP 471

+0

Чтобы ответить на действительно хороший, добавьте пример. :) –

+0

Я задал аналогичный вопрос о производительности «os.listdir». см. [link] (http://stackoverflow.com/questions/39429978/measure-progress-time-left-while-os-listdir-is-generating-a-list-python) –

 Смежные вопросы

  • Нет связанных вопросов^_^