ConfigParser 模块,用于读写配置文件,配置文件是由各个 section 组成的,每个部分都有一个 [section] 头指示,后面紧跟这部分里的配置信息,一般为 name: value 或 name=value,value 中可以包含格式化字符串来引用同一部分下的或是 DEFAULT 部分下的其他属性值。# 和 ; 开头的行会被忽略,并视为注释
1、模块对象
1.1 RawConfigParser 对象
1.1.1 初始化构建类:RawConfigParser([defaults[, dict_type[, allow_no_value]]])
参数设置:
defaults:设置内部默认字典,DEFAULT 部分,可以用于格式化字符串的填充
dict_type:设置配置文件里的各个部分、各个部分里的属性、默认值的字典对象类型
allow_no_value:默认 False,不允许各个部分里的属性值为空,为 True 时属性的空值用 none 表示
1.1.2 实例方法
defaults():返回默认部分的字典
sections():列表形式返回配置文件所有 section,不包括默认部分
add_section(section):向配置文件中加入一个新部分 section
has_section(section):判断 section 部分是否存在
options(section):列表形式返回 section 部分中的所有属性名
has_option(section, option):判断 section 部分是否存在 option 属性
read(filenames):读取并解析这些 filenames,返回成功解析的文件名,打不开的文件会直接忽略,不会报错。对一些需要预先加载数据的应用要先用 readfp() 加载所需数据,再 read()
readfp(fp[, filename]):读取并解析 fp,fp 可以是文件也可以是文件对象
get(section, option):从 section 部分获得属性 option 的值
getint(section, option):从 section 部分获得属性 option 的值,并转换成整型
getfloat(section, option):从 section 部分获得属性 option 的值,并转换成浮点型
getboolean(section, option):从 section 部分获得属性 option 的值,并转换成布尔型
items(section):列表形式返回 section 部分中的所有属性名和对应值元组
set(section, option, value):如果配置文件中确实有 section 这个部分,则设置 option 属性的值为 value,value 可以不是字符串,但在读写时只有字符串能被正确识别
write(fileobject):把写好的配置信息写入到 fileobject 中,可以被 read() 解析
remove_option(section, option):如果配置文件中确实有 section 这个部分,则删除 option 属性,返回 True,如果不存在 option 属性,返回 False
remove_section(section):删除 section 部分,返回 True,如果不存在,返回 False
optionxform(option):把 option 用内置的转换方法转换后内部存储,默认是把所有字母转成小写,可以通过设置 optionxform 属性设置转换方法
1.2 ConfigParser 对象
1.2.1 初始化构建类:ConfigParser([defaults[, dict_type[, allow_no_value]]]),参数同上
1.2.2 实例方法,同上基础上修改了两个方法
get(section, option[, raw[, vars]]):获得 section 部分的 option 属性的值,设置 raw 为真时,返回属性值的原始格式,即未被指定值替代的格式化字符串,vars 是提供格式化对应值的字典。替换格式化值时先找 vars,再 section,最后 defaults
items(section[, raw[, vars]]):获得 section 部分的所有属性名和对应值元组,raw 和 vars 同上
1.3 SafeConfigParser 对象
1.3.1 初始化构建类:SafeConfigParser([defaults[, dict_type[, allow_no_value]]]),参数同上
1.3.2 实例方法,同 ConfigParser 基础上修改了一个方法
set(section, option, value):如果配置文件中确实有 section 这个部分,则设置 option 属性的值为 value,value 只能是字符串
2、模块常量
ConfigParser.MAX_INTERPOLATION_DEPTH:格式化字符串中内容替换的最大迭代深度
3、模块异常
ConfigParser.Error:异常基类
ConfigParser.NoSectionError:没有指定 section 时抛出
ConfigParser.DuplicateSectionError:调用 add_section() 时,指定 section 已经存在
ConfigParser.NoOptionError:指定 section 中没有 option
ConfigParser.InterpolationError:格式化字符串失败时的基类
ConfigParser.InterpolationDepthError:格式化字符串时超过最大迭代深度
ConfigParser.InterpolationMissingOptionError:格式化字符串的其中一个及以上属性缺失
ConfigParser.InterpolationSyntaxError:格式化字符串时语法错误
ConfigParser.MissingSectionHeaderError:解析没有 section 标题名的文件时抛出
ConfigParser.ParsingError:解析文件错误