本系列文章来源:<a>https://blog.ansheng.me/article/python-full-stack-way</a>
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']
网友评论