У вас есть два достойных варианта:
- Стандартный формат файла конфигурации Python с использованием ConfigParser
- YAML с использованием такой библиотеки, как PyYAML
Стандартные файлы конфигурации Python выглядят как файлы INI с парами [sections]
и key : value
или key = value
. Преимущества этого формата:
- Нет необходимости в сторонних библиотеках
- Простой, знакомый формат файла.
YAML отличается тем, что он разработан как удобный для человека формат сериализации данных, а не специально предназначен для настройки. Он очень удобочитаем и дает вам пару разных способов представления одних и тех же данных. Для вашей проблемы вы можете создать файл YAML, который выглядит так:
file .* does not exist : file not found
user .* not found : authorization error
Или вот так:
{ file .* does not exist: file not found,
user .* not found: authorization error }
Использование PyYAML не может быть проще:
import yaml
errors = yaml.load(open('my.yaml'))
На данный момент errors
— это словарь Python с ожидаемым форматом. YAML может представлять не только словари: если вы предпочитаете список пар, используйте этот формат:
-
- file .* does not exist
- file not found
-
- user .* not found
- authorization error
Or
[ [file .* does not exist, file not found],
[user .* not found, authorization error]]
Что создаст список списков при вызове yaml.load
.
Одним из преимуществ YAML является то, что вы можете использовать его для экспорта существующих, жестко запрограммированных данных в файл для создания исходной версии, а не для вырезания/вставки плюс множество операций поиска/замены для получения данных в нужном формате.
Для ознакомления с форматом YAML потребуется немного больше времени, но использование PyYAML даже проще, чем использование ConfigParser, с тем преимуществом, что у вас больше возможностей для представления ваших данных с помощью YAML.
Кажется, что любой из них будет соответствовать вашим текущим потребностям, с ConfigParser будет проще начать, а YAML предоставит вам больше гибкости в будущем, если ваши потребности расширятся.
Удачи!
person
Aaron Hays
schedule
09.10.2008