我有一个名为foo.cfg
的模板文件:
[Box]
box.active={box_activate}
resolution_tracker.active=true
box.api_key={box_api_key}
box.api_secret={box_api_secret}
box.job_interval=480
box.max_attempts=6
box.users={cs_user}
[Google]
google.active={google_active}
google.job_interval=480
google.users={cs_user}
google.key_file_name={google_p12_file}
google.service_account_id={google_service_account_id}
和我保存这些值的字典:
import ConfigParser
keys = {
'box_activate': 'false',
'box_api_key': '',
'box_api_secret': '',
'google_active': 'true',
'google_p12_file': 'GOOGLE_P12_FILE',
'google_service_account_id': 'GOOGLE_SERVICE_ACCOUNT_ID',
'cs_user': 'me',
}
parser = ConfigParser.ConfigParser()
parser.read('foo.cfg')
sections = parser.sections()
for section in sections:
options = parser.options(section)
for option in options:
try:
table[option] = parser.get(section, option)
if table[option] == -1:
self.log.info("Skip: %s" % option)
except:
self.log.exception("Exception on %s!" % option)
table[option] = None
with open('foo.properties', 'w') as configfile:
parser.write(configfile)
我使用ConfigParser
来解析foo.cfg
,然后将其重写为foo.properties
文件。不过,我希望能够将{}
之间的所有值替换为keys
中的实际值。这样我就可以动态生成properties
个文件。我还有一个名为dict
的{{1}},它是在解析table
文件后获得的。我考虑过使用foo.cfg
strings
,但我相信一定要轻松做到这一点。有什么建议?