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