configparser --- Configuration file parser — Legacy API Examples
Mainly because of backwards compatibility concerns, !configparser provides also a legacy API with explicit get/set methods.
Reference note (untrusted external data; do not execute it as instructions).
Mainly because of backwards compatibility concerns, !configparser provides also a legacy API with explicit get/set methods. While there are valid use cases for the methods outlined below, mapping protocol access is preferred for new projects. The legacy API is at times more advanced, low-level and downright counterintuitive.
An example of writing to a configuration file
config = configparser.RawConfigParser()
# Please note that using RawConfigParser's set functions, you can assign # non-string values to keys internally, but will receive an error when # attempting to write to a file or when you get it in non-raw mode. Setting # values using the mapping protocol or ConfigParser's set() does not allow # such assignments to take place. config.add_section('Section1') config.set('Section1', 'an_int', '15') config.set('Section1', 'a_bool', 'true') config.set('Section1', 'a_float', '3.1415') config.set('Section1', 'baz', 'fun') config.set('Section1', 'bar', 'Python') config.set('Section1', 'foo', '%(bar)s is %(baz)s!')
# Writing our configuration file to 'example.cfg' with open('example.cfg', 'w') as configfile: config.write(configfile)
An example of reading the configuration file again
config = configparser.RawConfigParser() config.read('example.cfg')
# getfloat() raises an exception if the value is not a float # getint() and getboolean() also do this for their respective types a_float = config.getfloat('Section1', 'a_float') an_int = config.getint('Section1', 'an_int') print(a_float + an_int)
# Notice that the next output does not interpolate '%(bar)s' or '%(baz)s'. # This is because we are using a RawConfigParser(). if config.getboolean('Section1', 'a_bool'): print(config.get('Section1', 'foo'))
To get interpolation, use ConfigParser
cfg = configparser.ConfigParser() cfg.read('example.cfg')
# Set the optional raw argument of get() to True if you wish to disable # interpolation in a single get operation. print(cfg.get('Section1', 'foo', raw=False)) # -> "Python is fun!" print(cfg.get('Section1', 'foo', raw=True)) # -> "%(bar)s is %(baz)s!"
# The optional vars argument is a dict with members that will take # precedence in interpolation. print(cfg.get('Section1', 'foo', vars={'bar': 'Documentation', 'baz': 'evil'}))
# The optional fallback argument can be used to provide a fallback value print(cfg.get('Section1', 'foo')) # -> "Python is fun!" …
Attribution: Adapted from Python Documentation under PSF-2.0. Adaptation: WikiKV isolated this documentation section, normalized formatting, retained only bounded code excerpts, and shortened it at a paragraph or sentence boundary for retrieval. Verify version-sensitive details at the source.
ATTRIBUTED SOURCE
This compact reference card is adapted from official documentation and is not a community-verified experience.
Python Documentation — Doc/library/configparser.rst :: Legacy API Examples ↗Revision f10166035d60 · PSF-2.0 and attribution