abc.ini
; Sample configuration file
[installation]
library = % (prefix)s / lib
include = % (prefix)s / include
bin = % (prefix)s / bin
prefix = / usr / local
[debug]
pid - file = / tmp / spam.pid
show_warnings = False
log_errors = true
[server]
nworkers: 32
port: 8080
root = / www / root
signature:
|
Code #2 : Reading the file and extracting values.
from configparser import ConfigParser
configur = ConfigParser()
print (configur.read( 'config.ini' ))
print ( "Sections : " , configur.sections())
print ( "Installation Library : " , configur.get( 'installation' , 'library' ))
print ( "Log Errors debugged ? : " , configur.getboolean( 'debug' , 'log_errors' ))
print ( "Port Server : " , configur.getint( 'server' , 'port' ))
print ( "Worker Server : " , configur.getint( 'server' , 'nworkers' ))
|
Output :
['config.ini']
Sections : ['installation', 'debug', 'server']
Installation Library : '/usr/local/lib'
Log Errors debugged ? : True
Port Server : 8080
Worker Server : 32
One can also modify the configuration and write it back to a file using the cfg.write()
method.
Code #3 :
configur. set ( 'server' , 'port' , '9000' )
configur. set ( 'debug' , 'log_errors' , 'False' )
import sys
configur.write(sys.stdout)
|
Output :
[installation]
library = %(prefix)s/lib
include = %(prefix)s/include
bin = %(prefix)s/bin
prefix = /usr/local
[debug]
log_errors = False
show_warnings = False
[server]
port = 9000
nworkers = 32
pid-file = /tmp/spam.pid
root = /www/root
- Configuration files are well suited to specify configuration data to your program. Within each config file, values are grouped into different sections (e.g., “installation”, “debug” and “server”).
- Each section then has a specific value for various variables in that section. For the same purpose, there are some prominent differences between a config file and using a Python source file.
- First, the syntax is much more permissive and “sloppy.”
Names used in a config file are also assumed to be case-insensitive as shown in the code below –
configur.get( 'installation' , 'PREFIX' )
configur.get( 'installation' , 'prefix' )
|
Output :
'/usr/local'
'/usr/local'
When parsing values, methods such as getboolean() look for any reasonable value. For example, these are all equivalent.
log_errors = true
log_errors = TRUE
log_errors = Yes
log_errors = 1
The most noteworthy contrast between a config record and Python code is that, in contrast to scripts, configuration files are not executed in a top-down way. Rather, the file is read completely. On the off chance that variable substitutions are made, they are done later after the fact. For instance, it doesn’t make a difference that the prefix variable is allocated after different variables that happen to utilize it.
[installation]
library = %(prefix)s/lib
include = %(prefix)s/include
bin = %(prefix)s/bin
prefix = /usr/local
Multiple configuration files can be read together and their results can be merged into a single configuration using ConfigParser, which makes it so special to use.
Example – A user made their own configuration file that looks as.
; ~/.config.ini
[installation]
prefix = /Users/beazley/test
[debug]
log_errors = False
This file can be merged with the previous configuration by reading it separately
Code #4 :
import os
print (configur.get( 'installation' , 'prefix' ))
print (configur.read(os.path.expanduser( '~/.config.ini' )))
print (configur.get( 'installation' , 'prefix' ))
print (configur.get( 'installation' , 'library' ))
print (configur.getboolean( 'debug' , 'log_errors' ))
|
Output :
'/usr/local'
['/Users/HP/.config.ini']
'/Users/HP/test'
'/Users/HP/test/lib'
False
Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape,
GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out -
check it out now!
Last Updated :
20 Jun, 2019
Like Article
Save Article