python configparser模块_Python标准库系列之configparser模块

本文介绍了Python的configparser模块,该模块可处理特定格式文件,本质是用open操作文件。文中给出配置文件格式,通过实例展示了使用configparser模块添加、检查、删除节点,设置、检查、删除节点内键值对,获取指定节点下指定key的值、所有key、所有键值对以及所有节点等操作。

本系列文章来源:https://blog.ansheng.me/article/python-full-stack-way

This module provides the ConfigParser class which implements a basic configuration language which provides a structure similar to what’s found in Microsoft Windows INI files. You can use this to write Python programs which can be customized by end users easily.

configparser用于处理特定格式的文件,其本质上是利用open来操作文件。

配置文件格式如下:

# 第一种注释方式

; 第二种注释方式

[node1] # 节点

k1 = v1 # key = value

k2 : v2 # key : value

实例

注意:在每次增,删,改之后,都要将config写入到文件。

创建一个file.conf文件,内容为空,然后进入ipython IDE:

[root@wangerxiao tmp]# touch file.conf

[root@wangerxiao tmp]# ipython

为文件添加节点

In [1]: import configparser

In [2]: config = configparser.ConfigParser()

In [3]: config.read('file.conf',encoding='utf-8')

Out[3]: ['file.conf']

# 添加节点"node1","node2",然后写入文件

In [4]: config.add_section("node1")

In [5]: config.add_section("node2")

In [6]: config.write(open('file.conf','w'))

检查节点是否存在

# 如果文件存在则返回"True",否则就返回"False"

In [7]: print(config.has_section('node1'))

True

In [8]: print(config.has_section('node2'))

True

In [9]: print(config.has_section('node3'))

False

删除节点

# 如果删除的节点存在则返回"True",否则返回"False"

In [10]: config.remove_section("node2")

Out[10]: True

In [11]: config.write(open('file.conf','w'))

In [12]: print(config.has_section('node2'))

False

设置节点内的键值对

# 添加完键值对之后别忘记了写入到文件中

In [13]: config.set('node1','Name','wangerxiao')

In [14]: config.set('node1','Hostname','localhost')

In [15]: config.set('node1','IP','127.0.0.1')

In [16]: config.write(open('file.conf','w'))

检查节点内的key是否存在

# 如果节点的Key存在就返回"True",否则返回"False"

In [17]: print(config.has_option('node1','Name'))

True

In [18]: print(config.has_option('node1','IP'))

True

In [19]: print(config.has_option('node1','age'))

False

删除节点内的key

# 如果节点的Key存在就返回"True",否则返回"False"

In [20]: config.remove_option('node1','IP')

Out[20]: True

In [21]: config.write(open('file.conf','w'))

In [22]: print(config.has_option('node1','IP'))

False

获取指定节点下指定key的值

In [23]: config.get('node1','Name')

Out[23]: 'wangerxiao'

In [24]: config.get('node1','Hostname')

Out[24]: 'localhost'

# 返回的字符串我们可以设置成以下三种数据类型,分别是"int","float","bool"

# v = config.getint('node1', 'k1')

# v = config.getfloat('node1', 'k1')

# v = config.getboolean('node1', 'k1')

获取节点下所有的key

# 返回节点下面所有的Key列表

In [25]: config.options('node1')

Out[25]: ['name', 'hostname']

获取指定节点下所有的键值对

# 返回一个列表,列表中每个元组就是一个键值对

In [26]: config.items('node1')

Out[26]: [('name', 'wangerxiao'), ('hostname', 'localhost')]

获取所有节点

# 获取当前文件中有多少个节点

In [27]: config.sections()

Out[27]: ['node1']

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值