Home > Backend Development > Python Tutorial > Detailed explanation of ConfigParser of Python parsing configuration module

Detailed explanation of ConfigParser of Python parsing configuration module

高洛峰
Release: 2016-10-18 09:13:10
Original
1219 people have browsed it

1. Basic reading configuration file

-read(filename) directly reads the ini file content

-sections() gets all the sections and returns them in the form of a list

-options(section) gets the section All options

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

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

-getint(section,option) Get the option in the section The value is returned as int type, and there are corresponding getboolean() and getfloat() functions.

2. Basic writing configuration file

-add_section(section) Add a new section

-set(section, option, value) To set the options 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
Copy after login

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"))
Copy after login

Get 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
Copy after login

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
Copy after login

4. Python’s ConfigParser Module defines 3 classes to operate 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
Copy after login

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")
Copy after login

Get the terminal output:

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

Use Conf instead igParser:

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")
Copy after login

get terminal Output:

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

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")
Copy after login

Get terminal output (the effect is the same as ConfigParser):

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

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template