Существует ли удобный формат для сохранение конфигурационных файлов для Python, удобный как для разрабочика так и для простого пользователя?
Нужно удобное решение для хранения файлов конфигурации, которые будут использоваться пользователями программы. Нужна возможность работать с комментариями к файлам. Решение должно быть максимально читабельным. Сейчас склоняюсь к yaml. Может быть есть подходящее решение?
Ответы (2 шт):
Подытожу так сказать. Варианты хранения:
- .ini файл (https://docs.python.org/3/library/configparser.html) - быстро, просто, доступно "из коробки". Идеально, для небольших проектов.
- .toml файл (либа https://pypi.org/project/toml/) - более гибкое чем INI решение за счет поддержки разных типов данных ("TOML включают DateTime , местное время , массивы , числа с плавающей запятой и даже шестнадцатеричные значения").
- .yaml файл (либа https://github.com/beetbox/confuse) - стильно, модно, наиболее читабельно.
Все перечисленные варианты, вместе с примерами использования - https://hackersandslackers.com/simplify-your-python-projects-configuration/
Кроме названных вариантов есть ещё библиотека sd-format доступная на pip. Данные там сохраняются в собственном формате записи файлов конфигурации - sd. Подойдёт она только Pyton3. С комментариями там можно работать. Все комментарии сохраняются во вложенном словаре, даже комментарии к sd файлам. Что там доступно: Работа с комментариями,сохранение данных с несколькими уровнями вложенности 'dict', запись настроек в виде пары ключа и значения, использование в качестве значения списков 'list', не задокументированная возможность использовать список внутри списка в качестве значения, возможность указывать много строчное строковое значение 'str'. Точное описание и примеры можно посмотреть здесь: sd-format