python2下该模块名为ConfigParser,到python3才改为configparser,可以看官方configparser模块的说明
configparser官方文档:https://docs.python.org/2/library/configparser.html
python3中configparser模块的使用,configparser模块是用来解析ini配置文件的解析器,关于ini配置文件的结构可以看python官方文档中的介绍:
ini文件结构:https://docs.python.org/3.5/library/configparser.html#supported-ini-file-structure
一个普通的INI配置文件cfg.ini示例如下:
INI配置文件组成,注意点:
1. section:表示一个区块,由方括号及方括号中的名称组成,section的范围为当前方括号到下一个方括号的内容,如“DEFAULT”,“baidu”,“home”。
大小写和空格检测:区分大小写和空格,即:保存和获取的时,大小写不一样或空格不一样等都是不同的section。
重复性检测:同一个配置文件中section名称是不允许重复的。
2.option:表示section中的配置项,由key、分隔符和value组成的键值对,如“home”下的“port=8080”。
大小写检查:key不区分大小写,保存进文件的时候会自动将key小写保存,但value是大小写敏感的;
空格检查:通过key获取value时,会自动将文件中的key和value前后空格去掉再进行匹配,即文件中保存为' ip = 127.0.0.1 '时,用'ip'也可以获取到对应的value值'127.0.0.1';
跨多行检查:key是不能跨行的,但是value可以跨行,只要第二行即之后的行的缩进与第一行不同即可,一直到下一个option为止;
重复性检查:和section一样,同一section下的key是不允许重复的;
分隔符:可以是等号“=”或者冒号“:”;
3.注释:行注释用井号“#”或者分号“;”表示,特别需要注意的是必须得是行开头(前面可以有空格),用在行中间的就不会算作是注释了;
4.DEFAULT:这是一个特殊的section,会用作其他section的option取不到值时的备用值,或者可以理解为它是一个root,其他的section都是它的子section,但不是必须提供的;
注意:configparser有default_section的概念,默认为[DEFAULT]节,也就是之后的所有的section都有该默认section中的键值对,详情参见configparser源码的__init__()方法。
向配置文件中写数据:
基本的写入配置文件:
-write(fp) 将config对象写入至某个 .init 格式的文件
-add_section(section) 添加一个新的section
-set( section, option, value) 对section中的option进行设置,需要调用write将内容写入配置文件。
-remove_section(section) 删除某个 section
-remove_option(section, option)删除某个 section 下的 option
从配置文件中读取数据:
基本的读取配置文件:
-read(filename) 直接读取ini文件内容
-sections() 得到所有的section,并以列表的形式返回
-options(section) 得到该section的所有option
-items(section) 得到该section的所有键值对
-get(section,option) 得到section中option的值,返回为string类型
-getint(section,option) 得到section中option的值,返回为int类型,还有相应的getboolean()和getfloat() 函数。
实用函数:
configparser还包含了一些使用函数,在我们处理配置文件的时候非常有用。
函数名 | 作用 |
sections() | 返回所有章节组成的列表,不包括默认章节 |
add_section(section) | 添加一个新的章节 |
has_section(section) | 判断该章节是否存在 |
options(section) | 返回该章节下的所有选项列表 |
has_options(section,option) | 判断给定章节下是否存在某选项 |
remove_options(section,option) | 删除给定章节下的某个选项 |
remove_section(section) | 删除某个章节 |
还有一些函数不太常用,这里我就不介绍了。对于大部分情况,其实上面这些已经足够用了。
转载地址:https://www.cnblogs.com/guyuyun/p/10965125.html