Home > Article > Backend Development > Detailed explanation of Python's ConfigParser configuration file
1. Basic reading configuration file
-read(filename) directly reads the ini file content
-sections() to get all the sections and list them The form returns
-options(section) to get all the options of the section
-items(section) to get all the key-value pairs of the section
-get(section,option ) Get the value of option in section and return it as string type
-getint(section,option) Get the value of option in section and return it as int type. There are also corresponding getboolean() and getfloat() functions.
2. Basic writing configuration file
-add_section(section) Add a new section
-set(section, option, value ) To set the option in the section, you need to call write to write the content into the configuration file.
3. Basic example
test.conf
[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 = ConfigParser.ConfigParser() #read config cf.read("test.conf") # return all section secs = cf.sections() print 'sections:', secs opts = cf.options("sec_a") print 'options:', opts kvs = cf.items("sec_a") print 'sec_a:', kvs #read by type str_val = cf.get("sec_a", "a_key1") int_val = cf.getint("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 cf.set("sec_b", "b_key3", "new-$r") #set a new value cf.set("sec_b", "b_newkey", "new-value") #create a new section cf.add_section('a_new_section') cf.set('a_new_section', 'new_key', 'new_value') #write back to configure file cf.write(open("test.conf", "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 test.conf
[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
4. Python’s ConfigParser Module defines three classes to operate on INI files. They are RawConfigParser, ConfigParser and SafeConfigParser respectively. RawCnfigParser is the most basic INI file reading class. ConfigParser and SafeConfigParser support the parsing of %(value)s variables.
Set the configuration file test2.conf
[portal] url = http://%(host)s:%(port)s/Portal host = localhost port = 8080
Use RawConfigParser:
import ConfigParser cf = ConfigParser.RawConfigParser() print "use RawConfigParser() read" cf.read("test2.conf") print cf.get("portal", "url") print "use RawConfigParser() write" cf.set("portal", "url2", "%(host)s:%(port)s") print cf.get("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 = ConfigParser.ConfigParser() print "use ConfigParser() read" cf.read("test2.conf") print cf.get("portal", "url") print "use ConfigParser() write" cf.set("portal", "url2", "%(host)s:%(port)s") print cf.get("portal", "url2")
Get terminal output:
use ConfigParser() read http://localhost:8080/Portal use ConfigParser() write localhost:8080
Use SafeConfigParser instead:
import ConfigParser cf = ConfigParser.SafeConfigParser() print "use SafeConfigParser() read" cf.read("test2.conf") print cf.get("portal", "url") print "use SateConfigParser() write" cf.set("portal", "url2", "%(host)s:%(port)s") print cf.get("portal", "url2")
Get terminal output (the effect is the same as ConfigParser):
use SafeConfigParser() read http://localhost:8080/Portal use SateConfigParser() write localhost:8080
The above is the detailed content of Detailed explanation of Python's ConfigParser configuration file. For more information, please follow other related articles on the PHP Chinese website!