Ответ 1
После прохождения тестирования, ConfigParser перезаписывает ключи с каждым последующим файлом, порядок чтения файлов определяется порядком имен файлов в списке, переданном ConfigParser.read
При вызове ConfigParser.read вы можете передать список строк, соответствующих потенциальным местам для файлов конфигурации, и функция возвращает список файлов, которые были успешно прочитаны.
Каково поведение по умолчанию при загрузке нескольких файлов конфигурации с перекрывающимися разделами/ключами? Устанавливают ли более поздние файлы в списке значения, обработанные более ранними? Является ли весь раздел переопределенным или просто конфликтующим ключом?
После прохождения тестирования, ConfigParser перезаписывает ключи с каждым последующим файлом, порядок чтения файлов определяется порядком имен файлов в списке, переданном ConfigParser.read
Просто чтобы привести пример для более подробной информации.
Я могу создать следующие два файла:
config1.ini
# ** config1.ini **
[shared]
prop_uniue1 = 1
prop_shared = 10
[unique1]
test_unique = 101
и config2.ini
:
# ** config2.ini **
[shared]
prop_uniue2 = 2
prop_shared = 14
[unique2]
test_unique = 102
Затем, если я запустил следующее, я вижу, как обновляются конфиги (выходы отображаются в виде комментариев после соответствующих операторов печати):
import ConfigParser
config = ConfigParser.ConfigParser()
config.read(['config1.ini', 'config2.ini'])
print config.sections() # ['shared', 'unique1', 'unique2']
print config.get("shared", "prop_uniue1") # 1
print config.get("shared", "prop_shared") # 14
print config.get("unique1", "test_unique") # 101
print config.get("shared", "prop_uniue2") # 2
print config.get("unique2", "test_unique") # 102
Итак, чтобы суммировать это: