ConfigParser模块在python中是用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(section),每个节可以有多个参数(键=值)。 
注意:在python 3 中ConfigParser模块名已更名为configparser

config.read(           'example.ini'           ,encoding           =           "utf-8"           )          


           """读取配置文件,python3可以不加encoding"""          


           options(section)          


           """sections(): 得到所有的section,并以列表的形式返回"""          


           config.defaults()          


           """defaults():返回一个包含实例范围默认值的词典"""          


           config.add_section(section)          


           """添加一个新的section"""          


           config.has_section(section)          


           """判断是否有section"""          


           print           (config.options(section))          


           """得到该section的所有option"""          


           has_option(section, option)          


           """判断如果section和option都存在则返回True否则False"""          


           read_file(f, source           =           None           )          


           """读取配置文件内容,f必须是unicode"""          


           read_string(string, source           =           ’’)          


           """从字符串解析配置数据"""          


           read_dict(dictionary, source           =           ’’)          


           """从词典解析配置数据"""          


           get(section, option,            *           , raw           =           False           ,            vars           =           None           [, fallback])          


           """得到section中option的值,返回为string类型"""          


           getint(section,option)          


           """得到section中option的值,返回为int类型"""          


           getfloat(section,option)          


           """得到section中option的值,返回为float类型"""          


           getboolean(section, option)          


           """得到section中option的值,返回为boolean类型"""          


           items(raw           =           False           ,            vars           =           None           )          


           """和items(section, raw=False, vars=None):列出选项的名称和值"""          


           set           (section, option, value)          


           """对section中的option进行设置"""          


           write(fileobject, space_around_delimiters           =           True           )          


           """将内容写入配置文件。"""          


           remove_option(section, option)          


           """从指定section移除option"""          


           remove_section(section)          


           """移除section"""          


           optionxform(option)          


           """将输入文件中,或客户端代码传递的option名转化成内部结构使用的形式。默认实现返回option的小写形式;"""          


           readfp(fp, filename           =           None           )          


           """从文件fp中解析数据"""



生成configparser文件实例

import           configparser             #配置文件          


           config            =           configparser.ConfigParser()          


           """生成configparser配置文件 ,字典的形式"""          


           """第一种写法"""          


           config[           "DEFAULT"           ]            =           {           'ServerAliveInterval'           :            '45'           ,          


                      'Compression'           :            'yes'           ,          


                      'CompressionLevel'           :            '9'           }          


           """第二种写法"""          


           config[           'bitbucket.org'           ]            =           {}          


           config[           'bitbucket.org'           ][           'User'           ]            =           'hg'          


           """第三种写法"""          


           config[           'topsecret.server.com'           ]            =           {}          


           topsecret            =           config[           'topsecret.server.com'           ]          


           topsecret[           'Host Port'           ]            =           '50022'            # mutates the parser          


           topsecret[           'ForwardX11'           ]            =           'no'            # same here          


                      


           config[           'DEFAULT'           ][           'ForwardX11'           ]            =           'yes'          


           """写入后缀为.ini的文件"""          


           with            open           (           'example.ini'           ,            'w'           ) as configfile:          


                      config.write(configfile)



运行结果:


[DEFAULT]          


           serveraliveinterval            =           45          


           compression            =           yes          


           compressionlevel            =           9          


           forwardx11            =           yes          


                      


           [bitbucket.org]          


           user            =           hg          


                      


           [topsecret.server.com]          


           host port            =           50022          


           forwardx11            =           no



读取configparser配置文件的实例

import           configparser             #配置文件          


           config            =           configparser.ConfigParser()          


           config.read(           "example.ini"           )          


                      


           print           (           "所有节点==>"           ,config.sections())          


                      


           print           (           "包含实例范围默认值的词典==>"           ,config.defaults())          


                      


           for           item            in           config[           "DEFAULT"           ]:          


                      print           (           "循环节点topsecret.server.com下所有option==>"           ,item)          


                      


           print           (           "bitbucket.org节点下所有option的key,包括默认option==>"           ,config.options(           "bitbucket.org"           ))          


                      


           print           (           "输出元组,包括option的key和value"           ,config.items(           'bitbucket.org'           ))          


                      


           print           (           "bitbucket.org下user的值==>"           ,config[           "bitbucket.org"           ][           "user"           ])            #方式一          


                      


           topsecret            =           config[           'bitbucket.org'           ]          


           print           (           "bitbucket.org下user的值==>"           ,topsecret[           "user"           ])            #方式二          


                      


           print           (           "判断bitbucket.org节点是否存在==>"           ,           'bitbucket.org'           in           config)          


                      


           print           (           "获取bitbucket.org下user的值==>"           ,config.get(           "bitbucket.org"           ,           "user"           ))          


                      


           print           (           "获取option值为数字的:host port="           ,config.getint(           "topsecret.server.com"           ,           "host port"           ))



运行结果

所有节点           =           =           > [           'bitbucket.org'           ,            'topsecret.server.com'           ]          


           包含实例范围默认值的词典           =           =           > OrderedDict([(           'serveraliveinterval'           ,            '45'           ), (           'compression'           ,            'yes'           ), (           'compressionlevel'           ,            '9'           ), (           'forwardx11'           ,            'yes'           )])          


           循环节点topsecret.server.com下所有option           =           =           > serveraliveinterval          


           循环节点topsecret.server.com下所有option           =           =           > compression          


           循环节点topsecret.server.com下所有option           =           =           > compressionlevel          


           循环节点topsecret.server.com下所有option           =           =           > forwardx11          


           bitbucket.org节点下所有option的key,包括默认option           =           =           > [           'user'           ,            'serveraliveinterval'           ,            'compression'           ,            'compressionlevel'           ,            'forwardx11'           ]          


           输出元组,包括option的key和value [(           'serveraliveinterval'           ,            '45'           ), (           'compression'           ,            'yes'           ), (           'compressionlevel'           ,            '9'           ), (           'forwardx11'           ,            'yes'           ), (           'user'           ,            'hg'           )]          


           bitbucket.org下user的值           =           =           > hg          


           bitbucket.org下user的值           =           =           > hg          


           判断bitbucket.org节点是否存在           =           =           >            True          


           获取bitbucket.org下user的值           =           =           > hg          


           获取option值为数字的:host port           =           50022



删除配置文件section和option的实例(默认分组有参数时无法删除,但可以先删除下面的option,再删分组)

import           configparser             #配置文件          


           config            =           configparser.ConfigParser()          


           config.read(           "example.ini"           )          


           config.remove_section(           "bitbucket.org"           )          


           """删除分组"""          


           config.remove_option(           "topsecret.server.com"           ,           "host port"           )          


           """删除某组下面的某个值"""          


           config.write(           open           (           'example.ini'           ,            "w"           ))



运行结果

[DEFAULT]          


           serveraliveinterval            =           45          


           compression            =           yes          


           compressionlevel            =           9          


           forwardx11            =           yes          


                      


           [topsecret.server.com]          


           forwardx11            =           no



配置文件的修改实例

"""修改"""          


           import           configparser          


           config            =           configparser.ConfigParser()          


           config.read(           "example.ini"           )          


           config.add_section(           "new_section"           )          


           """新增分组"""          


           config.           set           (           "DEFAULT"           ,           "compressionlevel"           ,           "110"           )          


           """设置DEFAULT分组下compressionlevel的值为110"""          


           config.write(           open           (           'example.ini'           ,            "w"           ))



运行结果

[DEFAULT]          


           serveraliveinterval            =           45          


           compression            =           yes          


           compressionlevel            =           110          


           forwardx11            =           yes          


                      


           [topsecret.server.com]          


           forwardx11            =           no          


                      


           [new_section]