У меня есть более 100 тысяч файлов, разбросанных по нескольким каталогам и прямо сейчас я могу читать имена и путь к каждому файлу, используя вложенный for
цикл, как это,
for root, dirs, files in os.walk('python/Lib/email'):
for file in files:
# some work here
все равно для достижения этого без использования вложенного цикла? он занимает больше времени, чем мы ожидали, чтобы прочитать количество файлов, которые мы имеем
если проблема заключается в дополнительном цикле после открытия для этого:
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, чтобы узнать, что замедляет ваш код.