一,函数介绍
1.读取配置文件
getint(section, option)
得到指定section下的option的值,作为Int类型返回的方便方法。
getfloat(section, option)
得到section下的option值,作为float类型返回的方法方法。
getboolean(section, option)
得到section下的option值,作为布尔类型返回的方法方法。注意可接受的option的true值有“1”,“yes”,“true”及“on”,可接受的false值有“0”,“no”,“false”,“off”。字符串值不检测大小写,其他值会抛出ValueError异常。
判断给定的section名在配置文件中是否存在,DEFAULT section不包括。
optionxform(option)
将输入文件中,或客户端代码传递的option名转化成内部结构使用的形式。默认实现返回option的小写形式;子类可能重写该方法或客户端代码可能将该方法作为实例的属性,以此来影响它的行为。将此用于str(),例如,会使option名称大小写敏感。
2.写入配置文件
add_section(section)
为实例添加一个section,如果给定的section名已经存在,将抛出DuplicateSectionError异常。
set( section, option, value)
remove_option(section, option)
从指定section中删除指定option,如果section不存在,抛出NoSectionError异常;如果option存在,则删除,并返回True;否则返回false。1.6版本新增。
remove_section(section)
从配置文件中删除指定的section,如果section确实存在,返回true,否则返回false。
二,代码示例
host=192.168.190.922
port =3306
user=test
passwd=123456
connect_timeout=120
limit=10000
db=bb
charset=uft8
[dsc_mysql]
host=192.168.190.922
port =3306
user=test
passwd=123456
connect_timeout=120
db=aa
charset=uft8
class ConfigUtils(object):
def __init__(self,fileName):
super(ConfigUtils, self). __init__()
try:
self.config = ConfigParser()
self.config.read(fileName)
except IOError,e:
print traceback.print_exc()
cu = ConfigUtils( ' ini.cfg ')
# 打印所有的section
print cu.config.sections()
>>>[ ' src_mysql ', ' dsc_mysql ']
# 删除指定section
cu.config.remove_section( ' src_mysql ')
>>>True
# 打印所有的section
cu.config.sections()
>>>[ ' dsc_mysql ']
# 打印对应section的所有items键值对
cu.config.items( ' dsc_mysql ')
>>>[( ' passwd ', ' mytest '), ( ' charset ', ' uft8 '), ( ' db ', ' anlitest '), ( ' port ', ' 3306 '), ( ' host ', ' 192.168.10.222 '), ( ' user ', ' optusr '), ( ' connect_timeout ', ' 120 ')]
# 写配置文件
# 增加新的section
cu.config.add_section( ' src_mysql ')
# 写入指定section增加新option和值
cu.config.set( " src_mysql ", " passwd ", " new-value ")
cu.config.set( " src_mysql ", " charset ", " new_value ")
cu.config.set( " src_mysql ", " db ", " new-value ")
cu.config.set( " src_mysql ", " port ", " new_value ")
cu.config.set( " src_mysql ", " host ", " new_value ")
cu.config.set( " src_mysql ", " user ", " new_value ")
cu.config.set( " src_mysql ", " connect_timeout ", " new_value ")
# 写回配置文件
cu.config.write(open( " test.cfg ", " w "))