python---configparser模块快速入门

Python学习者可加群交流:651707058

前言

configparser 用于增删改查常见的配置文件
配置文件的格式与windows ini文件类似,可以包含一个或多个节(section),每个节可以有多个参数(键=值)。
为了更好的理解本文,我们先了解一下配置文件的组成及命名:配置文件(INI文件)由节(section)、键、值组成。

前言二

其实ini配置文件完全可以认为是,由多个字典合并而成的一个文件,每个字典名字叫做section,每个key叫做option,每个value还是value。操作的作用和字典有类似,只不过是换成了不同名字的函数,和不同的调用传参罢了。
如下图结构:

[baseconf] #属于section
host=127.0.0.1 #host属于option, 127.0.0.1属于value
port=3306
user=root
password=root
db_name=evaluting_sys
[concurrent]
processor=20

创建对象,读入配置文件

import configparser
#创建一个configparser对象
config = configparser.ConfigParser()
config.read('example.ini')#读取配置文件

打印节点section列表

sections_list =  config.sections()#返回节点列表
print(sections_list)
输出:
['baseconf', 'concurrent']

打印所有节点以及键值对

for s in sections_list:
    print(s)
    for k in config[s]:
        print(k,':',config[s][k])
输出:
baseconf
host : 127.0.0.1
port : 3306
user : root
password : root
db_name : evaluting_sys
concurrent
processor : 20

这里的节点section,下面就是一个字典。

打印给定section名字节点下的内容

声明:

    def options(self, section):
        """Return a list of option names for the given section name."""
        对一个给定的section名字返回一个keys列表。
op =  config.options('baseconf')
for k in op:
    print(k,':',config['baseconf'][k])
输出:
host : 127.0.0.1
port : 3306
user : root
password : root
db_name : evaluting_sys

第二种方法:
声明:

    def items(self, section=_UNSET, raw=False, vars=None):
        """Return a list of (name, value) tuples for each option in a section.
对于一个节点的每一个选项(键值对)都返回一个(name,value)的列表
it = config.items('baseconf')
for t in it:
    print(t[0],':',t[1])
输出:
host : 127.0.0.1
port : 3306
user : root
password : root
db_name : evaluting_sys

获取value

在已经知道section和option的时候,可以用下面的方法:
声明:

    def get(self, section, option, *, raw=False, vars=None, fallback=_UNSET):
        """Get an option value for a given section.
对于一个给定的section,返回一个option对应的value
val = config.get('baseconf','port')
print(val)
输出:
3306

也可以这样:

val = config['baseconf']['port']
print(val)
输出:
3306

删除section

注意:删除section,会连同下面的option 以及value一起删除

config.remove_section('baseconf')
config.write(open('example.ini','w'))#要指定输出流fp参数,这里命名为同一个文件,会将源文件清空再写入

删除了section,只是删除了内存中的,还需要写入到文件才能永久改变
此时文件:

[concurrent]
processor = 20

可以看到一整块section部分都被删除了

删除option

config.remove_option('baseconf','port')

添加section

config.add_section('baseconf2')

添加option

config['baseconf']['port2'] = '222'

要注意,所有信息都得是字符串

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值