Есть два способа взглянуть на этот вопрос.
Как я могу прочитать пары ключ-значение в python?Есть ли стандартный способ сделать это?
и
Как дать полную выразительную силу сценарию конфигурации?
Еслитвой вопрос первый;тогда самый очевидный ответ - использовать модуль ConfigParser
:
from ConfigParser import RawConfigParser
parser = RawConfigParser({"myvar": "default_value"}) # Never use ConfigParser.ConfigParser!
parser.read("my_config")
myvar = parser.get("mysection", "myvar")
, который будет считывать значение из файла, который выглядит как обычная конфигурация в стиле INI:второй вариант, когда вы действительно хотите дать полную мощность python для конфигурации (что редко, но иногда необходимо), вы, вероятно, не хотите использовать import
, вместо этого вы должны использовать execfile
:
config = {}
execfile("my_config", config)
myvar = config.get("myvar", "default_value")
Который, в свою очередь, будет читать из скрипта Python;она будет читать глобальную переменную myvar
независимо от того, как скрипт ее выводит:
import random
myvar = random.choice("special_value", "another_value")