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