io solitamente faccio così per leggere e salvare i file di Configurazione (p.s: le info vengono prese dagli argomenti passati all'avvio del file):
codice:
import ConfigParser
import string
class IniSettings:
def __init__(self, filename):
self.filename = filename
self.settings = self.__loadConfig()
def __loadConfig(self):
config = {}
cp = ConfigParser.ConfigParser()
cp.read(self.filename)
for sec in cp.sections():
settings={}
name = string.lower(sec)
for opt in cp.options(sec):
settings[string.lower(opt)] = string.strip(cp.get(sec, opt))
config[name] = settings
return config
def reload(self):
self.__loadConfig()
def save(self):
inifile = open(self.filename, 'w')
for group in self.settings.keys():
inifile.write("\n["+group+"]\n")
for key in self.settings[group].keys():
inifile.write(key+"="+self.settings[group][key]+"\n")
def set(self, group, key, value):
self.settings[group][key] = value
def set_dict(self, dict):
for group in dict.keys():
for key in dict[group].keys():
self.settings[group][key] = dict[group][key]
import sys
def getOptions(argv):
opts= {}
while argv:
if argv[0][0] == '-':
opts[argv[0]] = argv[1]
argv = argv[2:]
else:
argv = argv[1:]
return opts
options = getOptions(sys.argv)
settings = IniSettings(options['-ini'])
settings.set('path','data', options['-datadir'])
settings.save()