Python标准库系列之configparser模块

2017-06-01  本文已影响0人  码农小杨

本系列文章来源:<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']
上一篇下一篇

猜你喜欢

热点阅读