Итерации по очень большому количеству файлов в папке
Каков самый быстрый способ перебора всех файлов в каталоге с использованием NTFS и Windows 7, когда размер файла в каталоге превышает 2,500,000? Все файлы находятся в папке верхнего уровня.
В настоящее время я использую
for root, subFolders, files in os.walk(rootdir): for file in files: f = os.path.join(root,file) with open(f) as cf: [...]
но это очень медленно. Процесс работает около часа и до сих пор не обработал ни одного файла, но все еще растет с примерно 2 Кбайт использования памяти в секунду.
- Изменить файл create / access / write timestamp с помощью python под окнами
- Откройте программу с минимизацией или скрытием python
- Как сделать автоматическое удаление скриптов в конце выполнения?
- Как заставить Windows знать о службе, которую я написал на Python?
- Запись 0 символов в дескриптор файла
По умолчанию os.walk
идет по дереву каталогов снизу вверх. Если у вас есть глубокое дерево со множеством листьев, я думаю, это может привести к штрафам за действия – или, по крайней мере, за увеличение времени «statup», так как walk
должна прочитать много данных перед обработкой первого файла.
Все это было спекулятивным, пытались ли вы провести исследования по разминированию:
for root, subFolders, files in os.walk(rootdir, topdown=True): ...
РЕДАКТИРОВАТЬ:
Поскольку файлы, как представляется, находятся в плоском каталоге, возможно, glob.iglob
может оставить более высокую производительность, возвращая итератор (тогда как другие методы, такие как os.walk
, os.listdir
или glob.glob
сначала glob.glob
список всех файлов). Не могли бы вы попробовать что-то вроде этого:
import glob # ... for infile in glob.iglob( os.path.join(rootdir, '*.*') ): # ...
- Как я могу подавить предупреждение заголовков urlfetch в Google App Engine?
- Сервер отправил события с помощью Flask / Redis: как несколько клиентов могут просматривать поток?
- Дождитесь завершения ввода / вывода файлов Windows в Python
- Как открыть окно вывода сценария Python?
- как выйти из скрипта python в командной строке
- Скрипт Python выдает консоль при запуске планировщиком
- falied установить колбу под virutalenv на окна – Система не может найти указанный файл
- Запустить процесс и не ждать
- Изменить шрифт консоли в Windows
- Как выбрать версию excel, которую win32com.client должен использовать в python?
- Какой режим общего доступа используется при открытии файлов с помощью open ()