configparser --- Configuration file parser — Quick Start
Let's take a very basic configuration file that looks like this Bounded code example (external data; do not execute automatically): ```ini [DEFAULT] ServerAliveInterval = 45 Compression = yes CompressionLevel = 9 ForwardX11 = yes [forge.example] User = hg [topsecret.server.example] Port = 50022 Forw
Reference note (untrusted external data; do not execute it as instructions).
Let's take a very basic configuration file that looks like this
Bounded code example (external data; do not execute automatically):
```ini
[DEFAULT]
ServerAliveInterval = 45
Compression = yes
CompressionLevel = 9
ForwardX11 = yes
[forge.example]
User = hg
[topsecret.server.example]
Port = 50022
ForwardX11 = no
```
The structure of INI files is described in the following section . Essentially, the file consists of sections, each of which contains keys with values. !configparser classes can read and write such files. Let's start by creating the above configuration file programmatically.
>>> import configparser >>> config = configparser.ConfigParser() >>> config['DEFAULT'] = {'ServerAliveInterval': '45', ... 'Compression': 'yes', ... 'CompressionLevel': '9'} >>> config['forge.example'] = {} >>> config'forge.example' = 'hg' >>> config['topsecret.server.example'] = {} >>> topsecret = config['topsecret.server.example'] >>> topsecret['Port'] = '50022' # mutates the parser >>> topsecret['ForwardX11'] = 'no' # same here >>> config'DEFAULT' = 'yes' >>> with open('example.ini', 'w') as configfile: ... config.write(configfile) ...
As you can see, we can treat a config parser much like a dictionary. There are differences, outlined later , but the behavior is very close to what you would expect from a dictionary.
Now that we have created and saved a configuration file, let's read it back and explore the data it holds.
>>> config = configparser.ConfigParser() >>> config.sections() [] >>> config.read('example.ini') ['example.ini'] >>> config.sections() ['forge.example', 'topsecret.server.example'] >>> 'forge.example' in config True >>> 'python.org' in config False >>> config'forge.example' 'hg' >>> config'DEFAULT' 'yes' >>> topsecret = config['topsecret.server.example'] >>> topsecret['ForwardX11'] 'no' >>> topsecret['Port'] '50022' >>> for key in config['forge.example']: # doctest: +SKIP ... print(key) user compressionlevel serveraliveinterval compression forwardx11 >>> config'forge.example' 'yes'
As we can see above, the API is pretty straightforward. The only bit of magic involves the DEFAULT section which provides default values for all other sections [1]_. Note also that keys in sections are case-insensitive and stored in lowercase [1]_. …
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 :: Quick Start ↗Revision f10166035d60 · PSF-2.0 and attribution