Дополнительно
Как подсчитать количество файлов в каталоге с помощью Python
Мне нужно подсчитать количество файлов в каталоге с помощью Python.
Самый простой способ - len(glob.glob('*'))
, но в этом случае сама директория также считается файлом.
Есть ли способ подсчитать только файлы в каталоге?
192
20
os.listdir()
будет немного эффективнее, чем использованиеglob.glob
. Чтобы проверить, является ли имя файла обычным файлом (а не каталогом или другой сущностью), используйтеos.path.isfile()
:Для всех видов файлов, поддиректорий в комплекте:
Только файлы (без поддиректорий):<БР>
Это где fnmatch очень удобен:
Более детально: http://docs.python.org/2/library/fnmatch.html
Меня удивляет, что никто не упомянул
ОС.scandir
:Это использует
os.listdir
и работает для любого каталога:Это можно упростить с помощью генератора и сделать немного быстрее с помощью:
Если вы хотите посчитать все файлы в папке, включая файлы в подкаталогах, наиболее подходящие для Python способ:
Мы используем сумма, которая быстрее, чем явного добавления файла графов (тайминги в ожидании)
Взято из этого поста
Вот простая однострочная команда, которую я нашел полезными:
Луки'повторно форматировать код.
Хотя я согласен с ответом @DanielStutzbach:
ОС.listdir () будет немного более эффективным, чем использование
Глоб.Глоб`.Однако, дополнительную точность, если вы не хотите, чтобы подсчитать количество определенных файлов в папку, которую вы хотите использовать
лен(Глоб.Глоб())
. Например, если вы были посчитать все файлы в папку, которую вы хотите использовать:Если вы'll быть с помощью стандартной оболочкой операционной системы, вы можете получить результат гораздо быстрее, нежели с использованием чистого подходящие для Python путь.
Пример для Windows:
Я нашел еще один ответ может быть правильным, как принято отвечать.
Он прост:
он просто подсчитывает количество файлов в каталоге , я использовал список метод понимания, чтобы выполнить итерации через определенный каталог вернув все файлы в ответ . назальный лен(возвращенный список); возвращает количество файлов.
Я использовал `Глоб.iglob на структуру каталогов, подобную
Оба варианта возвращают 4 (как и ожидалось, т. е. не считать себя подпапки)
я сделал это и это возвращаемое количество файлов в папке(Attack_Data)...это прекрасно работает.