構成ファイルから取得して別の変数に保存したい 15 個の値があります。
私は使っている
from ConfigParser import SafeConfigParser
parser = SafeConfigParser()
parser.read(configFile)
そしてそれは本当に良い図書館です。
オプション1
変数の名前を変更し、構成ファイルのエントリと一致させたい場合は、関数の対応する行を編集する必要があります
def fromConfig():
#open file
localOne = parser.get(section, 'one')
localTwo = parser.get(section, 'two')
return one, two
one = ''
two = ''
#etc
one, two = fromConfig()
オプション #2
変数がどこから値を取得するかを確認する方がわかりやすいですが、変数ごとにファイルを開いたり閉じたりすることになります
def getValueFromConfigFile(option):
#open file
value = parser.get(section, option)
return value
one = getValueFromConfigFile("one")
two = getValueFromConfigFile("two")
オプション #3
すべての変数名の別のリストが必要なので、これはあまり意味がありませんが、関数はよりクリーンです。
def getValuesFromConfigFile(options):
#open file
values = []
for option in options:
values.append(parser.get(section, option))
return values
one = ''
two = ''
configList = ["one", "two"]
one, two = getValuesFromConfigFile(configList)
編集: これは、ファイル1を読み取り、すべての値をdictに保存してから、値を使用しようとする私の試みです。複数行の文字列があり、使用しています
%(nl)s to be a new line character so then when I get the value
message = parser.get(section, 'message', vars={'nl':'\n'})
これが私のコードです:
from ConfigParser import SafeConfigParser
def getValuesFromConfigFile(configFile):
''' reads a single section of a config file as a dict '''
parser = SafeConfigParser()
parser.read(configFile)
section = parser.sections()[0]
options = dict(parser.items(section))
return options
options = getValuesFromConfigFile(configFile)
one = options["one"]