美文网首页
Python标准库系列之configparser模块

Python标准库系列之configparser模块

作者: 码农小杨 | 来源:发表于2017-06-01 14:52 被阅读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']
    

    相关文章

      网友评论

          本文标题:Python标准库系列之configparser模块

          本文链接:https://www.haomeiwen.com/subject/kicefxtx.html