Функция config.read работает не так, как вы, вероятно, думаете. Он обрабатывает указанный вами файл, но он объединяет результат с уже существующим содержимым синтаксического анализатора. Он не реинициализирует содержимое парсера. Поэтому, если вы анализируете несколько файлов, как здесь, каждый новый файл просто объединяет свое содержимое с существующим состоянием анализатора. Вы думаете, что он читает один и тот же файл снова и снова, но этого не происходит. Он просто сохраняет все предыдущие результаты.
Простое решение - прочитать все файлы одновременно, а затем выполнить печать в отдельном l oop. Кроме того, вы можете создать новый (и, следовательно, пустой) экземпляр ConfigParser для каждого файла. Я не знаю, какое решение подойдет вам лучше всего.
К вашему сведению, функция чтения может обработать список имен файлов за один шаг, что исключит ваш внешний l oop. Прочитайте документы для этой функции.