читать файлы и папки без использования вложенного цикла

1

У меня есть более 100 тысяч файлов, разбросанных по нескольким каталогам и прямо сейчас я могу читать имена и путь к каждому файлу, используя вложенный for цикл, как это,

for root, dirs, files in os.walk('python/Lib/email'):
     for file in files:
        # some work here

все равно для достижения этого без использования вложенного цикла? он занимает больше времени, чем мы ожидали, чтобы прочитать количество файлов, которые мы имеем

Теги:

1 ответ

1
Лучший ответ

если проблема заключается в дополнительном цикле после открытия для этого:

import os

for fpath in (os.path.join(root, fname)
              for root, dirs, files
              in os.walk(R"python/Lib/email")
              for fname
              in files):
    pass  # do something with the path

Время выполнения может быть уменьшено во многом, что зависит от того, что вы делаете в блоке "некоторые работы". Если вы выполняете много дополнительных проверок файловой системы, вы можете, например, перенести fpath в pathlib.Path().

Я предлагаю использовать модуль cProfile, чтобы узнать, что замедляет ваш код.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню