Python的配置文件解析器configparser
此模块提供ConfigParser实现基本配置语言的类,该语言提供类似于Microsoft Windows INI文件中的结构。您可以使用它来编写可由最终用户轻松定制的Python程序。
ini配置文件介绍
根据官方文档得知,ini文件的定义主要有以下几点:
- 配置文件由一个或多个
[section]
组成,每个[section]
代表一组配置文件的集合 - Key与Value之间可用
=
或者:
分隔 - Key与Value中允许出现空格
[section]
的名称区分大小写,Key不区分- 可以省略Value,省略等号和Value表示没有值,如果只省略Value,则表示值为
空字符串
- Value可以跨域多行,但是跨行后的数据值需要进行一定的缩进
- 配置文件可以包括注释,以
#
或者;
开头的
下面是官方的例子:
1 | [Simple Values] |
接下来我们就以官方文档的例子来实现配置文件的读取与写入。
读取配置文件
1 | import configparser |
此时会打印如下内容:
1 | <Section: Simple Values> |
[Simple Values]
这种形式的被称为Section
。
如果我们要打印所有的Section
,则只需要如下代码即可
1 | print(config.sections()) |
此时会输出如下内容:
1 | ['Simple Values', 'All Values Are Strings', 'Multiline Values', 'No Values', 'You can use comments'] |
如果我们要打印Simple Values
这个Section
下的所有key,只需要如下代码即可:
1 | print(config.options('Simple Values')) |
此时会输出如下内容:
1 | ['key', 'spaces in keys', 'spaces in values', 'spaces around the delimiter', 'you can also use'] |
如果要获取Simple Values
下所有的键值对,则需要如下代码:
1 | print(config.items('Simple Values')) |
此时会输入如下内容:
1 | [('key', 'value'), ('spaces in keys', 'allowed'), ('spaces in values', 'allowed as well'), ('spaces around the delimiter', 'obviously'), ('you can also use', 'to delimit keys from values')] |
如果要获取Simple Values
下key
的值,则需要如下代码:
1 | print(config['Simple Values']['key']) |
此时会输入如下内容:
1 | value |
如果要获取指定类型的值,则需要如下代码:
1 | print(config.getint('All Values Are Strings', 'values like this')) |
此时会输出如下内容:
1 | 1000000 |
类似的还有config.getboolean()
和config.getfloat()
,同时需要注意getboolean()
方法能判断True/False
的值有:yes
/no
, on
/off
, true
/false
和 1
/0
。
写入配置
关于写如配置的方法,有如下四种方式可以实现。
1 | config1 = configparser.ConfigParser() |
最后写入结果example.ini
1 | [Test Write First] |
常用的也就这些,有需要了解其他的特性,可以参阅官方文档
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment