У меня был какой-то каталог с большим количеством файлов. Каждый раз, когда я пытался получить доступ к списку файлов в нем, я не мог этого сделать или существенная задержка. Я пытался использовать команду ls
в командной строке в Linux, и веб-интерфейс от моего хостинг-провайдера также не помог.
Проблема в том, что когда я просто делаю ls
, требуется значительное время, чтобы даже начать что-то отображать. Таким образом, ls | wc -l
также не поможет.
После некоторых исследований я придумал этот код (в этом примере он подсчитывает количество новых писем на каком-либо сервере):
print sum([len(files) for (root, dirs, files) in walk('/home/myname/Maildir/new')])
Приведенный выше код написан на Python. Я использовал инструмент командной строки Python, и он работал довольно быстро (мгновенно возвращал результат).
Меня интересует ответ на следующий вопрос: можно ли посчитать файлы в каталоге (без подкаталогов) быстрее? Какой самый быстрый способ сделать это?