Возможности:
(1) Оцените подход csv.DictReader и посмотрите, не вызывает ли это проблемы.Обратите внимание, что в диктофонах содержатся указатели на ключи и значения;фактические строки ключей не копируются в каждый файл.
(2) Для каждого файла используйте csv.Reader, после первой строки динамически создайте класс, создавайте его экземпляр один раз для оставшейся строки.Возможно, это то, что вы имели в виду.
(3) Имейте один фиксированный класс, создаваемый один раз для каждого файла, который дает вам список кортежей для фактических данных, кортеж, который отображает индексы столбца в имена столбцов, и дикт, который отображает имена столбцов в столбециндексы.Кортежи занимают меньше памяти, чем списки, поскольку не выделяется дополнительное место для добавления.Затем вы можете получить и установить свои данные с помощью (row_index, column_index) и (row_index, column_name).
В любом случае, чтобы получить лучший совет, как насчет простых фактов и статистики: какая версия Python?Сколько файлов?строк на файл?столбцы на файл?Всего уникальных ключей / имен столбцов?