python config

Python模块之: ConfigParser 配置文件读取

http://zhangjunhd.blog.51cto.com/113473/348863 

http://docs.python.org/library/configparser.html 

http://www.linux-field.com/?p=437 

1.读取配置文件

-read(filename)  直接读取 ini 文件内容
-sections()  得到所有的 section ,并以列表的形式返回
-options(section)  得到该 section 的所有 option
-items(section)  得到该 section 的所有键值对
-get(section,option)  得到 section option 的值,返回为 string 类型
-getint(section,option)  得到 section option 的值,返回为 int 类型
 
2. 写入 配置文件
-add_section(section)  添加一个新的 section
-set( section, option, value)  section 中的 option 进行设置
          需要调用 write 将内容写入配置文件。
 
3. 例子
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" ))
 
print
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
 
更新后的 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. 可能抛出的异常
exception NoSectionError
Exception raised when a specified section is not found.
exception DuplicateSectionError
Exception raised if add_section() is called with the name of a section that is already present.
exception NoOptionError
Exception raised when a specified option is not found in the specified section.
exception InterpolationError
Base class for exceptions raised when problems occur performing string interpolation.
exception InterpolationDepthError
Exception raised when string interpolation cannot be completed because the number of iterations exceeds MAX_INTERPOLATION_DEPTH. Subclass of InterpolationError.
exception InterpolationMissingOptionError
Exception raised when an option referenced from a value does not exist. Subclass of InterpolationError. New in version 2.3.
exception InterpolationSyntaxError
Exception raised when the source text into which substitutions are made does not conform to the required syntax. Subclass of InterpolationError. New in version 2.3.
exception MissingSectionHeaderError
Exception raised when attempting to parse a file which has no section headers.
exception ParsingError
Exception raised when errors occur attempting to parse a file.
 

你可能感兴趣的:(python,config)