Который лучше для создания файла настроек для программ Python, встроенный модуль (ConfigParser) или независимый проект (ConfigObj) или использование формата сериализации данных YAML? Я услышал, что ConfigObj легче использовать, чем ConfigParser, даже при том, что это не встроенная библиотека. Я также считал, что PyYAML прост в использовании, хотя YAML занимает немного времени для использования. Простота реализации в стороне, которая является наилучшим вариантом для создания настройки/конфигурационный файл?
Использование ConfigObj, по крайней мере, очень простое, а ini-файлы в general гораздо проще (и более широко используются), чем YAML. Для более сложных случаев, включая валидацию, значения по умолчанию и типы, ConfigObj предоставляет способ сделать это через валидацию configspec.
Простой код для чтения ini-файла с помощью ConfigObj:
from configobj import ConfigObj
conf = ConfigObj('filename.ini')
section = conf['section']
value = section['value']
Он автоматически обрабатывает списочные значения и позволяет многострочные значения. Если вы измените конфигурационный файл, вы сможете записать его обратно, сохранив порядок и комментарии.
См. эти статьи для получения дополнительной информации, включая примеры проверки типов:
ConfigParser имеет действительно плохой API, ConfigObj должен быть хорошим, но я никогда не использовал его, для ini-файлов я обычно использую свой собственный синтаксический анализатор.
Однако ini-подобные форматы в любом случае плохо обрабатывают различные типы, последовательности или рекурсивные сопоставления, поэтому я бы просто использовал yaml. Их легко читать и редактировать с помощью редактора, существует стандарт для анализа этих файлов, и у вас нет ни одного из упомянутых недостатков, которые есть у ini-подобных форматов.