SoFunction
Updated on 2024-11-13

Python ConfigParser module use details

1. Basic reading configuration files

-read(filename) Read ini file content directly

-sections() gets all the sections and returns them as a list

-options(section) Get all the options for the section.

-items(section) get all key-value pairs of the section

-get(section,option) get the value of the option in the section, return as string type

-getint(section,option) get the value of option in section, return to int type, there are corresponding getboolean() and getfloat() functions.

2. Basic Write Configuration File

-add_section(section) Adds a new section.

-set( section, option, value) Sets the option in section and requires a call to write to write the contents to the configuration file.

 

3. Basic examples


[sec_a] 
a_key1 = 20 
a_key2 = 10 
  
[sec_b] 
b_key1 = 121 
b_key2 = b_value2 
b_key3 = $r 
b_key4 = 127.0.0.1

parse_test_conf.py
import ConfigParser 
cf = () 
#read config 
("") 
# return all section 
secs = () 
print 'sections:', secs 
  
opts = ("sec_a") 
print 'options:', opts 
  
kvs = ("sec_a") 
print 'sec_a:', kvs 
  
#read by type 
str_val = ("sec_a", "a_key1") 
int_val = ("sec_a", "a_key2") 
  
print "value for sec_a's a_key1:", str_val 
print "value for sec_a's a_key2:", int_val 
  
#write config 
#update value 
("sec_b", "b_key3", "new-$r") 
#set a new value 
("sec_b", "b_newkey", "new-value") 
#create a new section 
cf.add_section('a_new_section') 
('a_new_section', 'new_key', 'new_value') 
  
#write back to configure file 
(open("", "w"))

Get the terminal output:

sections: ['sec_b', 'sec_a'] 
options: ['a_key1', 'a_key2'] 
sec_a: [('a_key1', "i'm value"), ('a_key2', '22')] 
value for sec_a's a_key1: i'm value 
value for sec_a's a_key2: 22

updated

[sec_b] 
b_newkey = new-value 
b_key4 = 127.0.0.1 
b_key1 = 121 
b_key2 = b_value2 
b_key3 = new-$r 
  
[sec_a] 
a_key1 = i'm value 
a_key2 = 22 
  
[a_new_section] 
new_key = new_value

There are three classes defined in the ConfigParser Module that operate on INI filesRawConfigParser They are RawConfigParser, ConfigParser, SafeConfigParser. RawCnfigParser is the most basic INI file reading class, ConfigParser, SafeConfigParser support parsing of %(value)s variables.

Setting Profiles

[portal] 
url = http://%(host)s:%(port)s/Portal 
host = localhost 
port = 8080

Use RawConfigParser:

import ConfigParser 
 
cf = () 
 
print "use RawConfigParser() read" 
("") 
print ("portal", "url") 
 
print "use RawConfigParser() write" 
("portal", "url2", "%(host)s:%(port)s") 
print ("portal", "url2")

Get the terminal output:

use RawConfigParser() read 
http://%(host)s:%(port)s/Portal 
use RawConfigParser() write 
%(host)s:%(port)s

Use ConfigParser instead:

import ConfigParser 
 
cf = () 
 
print "use ConfigParser() read" 
("") 
print ("portal", "url") 
 
print "use ConfigParser() write" 
("portal", "url2", "%(host)s:%(port)s") 
print ("portal", "url2")

Get the terminal output:

use ConfigParser() read 
http://localhost:8080/Portal 
use ConfigParser() write 
localhost:8080

Change to SafeConfigParser:

import ConfigParser 
 
cf = () 
 
print "use SafeConfigParser() read" 
("") 
print ("portal", "url") 
 
print "use SateConfigParser() write" 
("portal", "url2", "%(host)s:%(port)s") 
print ("portal", "url2")

Get terminal output (same effect as ConfigParser):

use SafeConfigParser() read 
http://localhost:8080/Portal 
use SateConfigParser() write 
localhost:8080