У меня есть функция, обрабатывающая текстовые файлы. У меня есть список из примерно 73К файлов, которые я хочу запустить с помощью этой функции. Функция возвращает список словарей, каждый из которых представляет одну строку в моем выводе. После обработки всех результатов я записываю результаты в csv с помощью csv.DictWriter.
То, что я делал до сих пор, - это results = [i for sublist in [*map(lambda f: process_func(f), files] for i in sublist]
или list(map(process_func, files))
. Каждый из них занимает около 3,5 минут. Когда я просто делаю что-то вроде map(process_func, files)
, это занимает около 350 мс.
Мне нужно увеличить масштаб, а процесс преобразования объекта карты в список по существу занимает все время, необходимое для запуска скрипта. Есть ли более эффективный способ сделать это?