Форум сайта python.su
Здравствуйте.
Стоит следующая задача. Нужно в программу передавать значения параметров, хранящихся в отдельном текстовом файле (например маску файлов, которые следует закачать на сервер). Подскажите пожалуйста, как лучше всего организовать подобный конфигурационный файл и получать из него значения параметров. Спасибо.
Офлайн
Проще всего будет использовать стандартный модуль ConfigParser: http://docs.python.org/library/configparser.html
Офлайн
А как передать адрес папки, в которой хранятся файлы конфигурации, в качестве ключа *.py файла? То есть нечто вроде myprog.py dir=/configdir
Отредактировано (Дек. 25, 2008 22:18:39)
Офлайн
Самый низкоуровневый вариант, это sys.argv.
Чуть выше всякая чешуя вроде optparse.
Офлайн
drmА что это файлов конфигурации вдруг много стало? Вроде поначалу был один?
А как передать адрес папки, в которой хранятся файлы конфигурации
Офлайн
Разбираю конфиг с помощью ConfigParser. А можно ли в файле конфигурации (структура INI) указать несколько значений параметра, например dir: dir1,dir2 и затем парсером получить значения в виде списка или как-нибудь преобразовать строку в список? Если нет, то как это можно реализовать?
Отредактировано (Дек. 29, 2008 10:54:11)
Офлайн
Туда можно писать все, что угодно, но читаться это будет как строки, либо как числа или boolean, если попросите.
В общем-то никто не мешает сконвертить это потом в список.
Предлагаю просто положить эти значения в разные секции. Тогда можете передавать название секции в качестве ключа программы и вынимать из нее все, что вам нужно. Это, кстати, поможет избавиться от множества конф. файлов, если я правильно понял вашу задачу. Просто будет много секций, в каждой свои параметры. также советую обратить внимание на секцию DEFAULT, в нее можно положить общие параметры, чтобы не дублировать их в каждой секции.
Офлайн
EdНаследование секций? :-)))
также советую обратить внимание на секцию DEFAULT, в нее можно положить общие параметры, чтобы не дублировать их в каждой секции.
Офлайн
Спасибо за помощь. Задача решена, конфиг передается в виде ini-файла, при использовнаии нескольких значений параметров - производится конвертирование строки в список методом split().
Офлайн