• confiparser模块


    什么是confiparser

      confiparser,翻译为配置解析,很显然,他是用来解析配置文件的,

      何为配置文件?

        用于编写程序的配置信息的文件

      何为配置信息?

        为了提高程序的扩展性,我们会把一些程序中需要用到的值交给用户来确定,比如迅雷的下载目录,同时下载数,qq的提示音等等,

    作为配置信息的数据 应满足两个条件:

    1. 数据的值不是固定的
    2. 可以由用户来指定的

    例如我们做一个登录功能,为了方便使用我们可以将用户的用户名密码写到配置文件中,可以不需要每次都输入

    配置文件编写格式

      在使用该模块前必须要先知道其配置文件的格式,由于读写文件的代码是模块封装好的,所以必须按照固定的方式来边编写,才能被正常解析, 当然并不是只有python有配置文件,其他任何语言都有,但是格式是相同的!

    格式:

      配置文件中只允许出现两种类型的数据

      第一种 section 分区 方括号中是分区的名称 例如:[ATM ]

      第二种 option 选项 名称 = 值

    注意:

      不能出现重复的分区名

      同一个分区下不能有相同的选项名

      值可以是任何类型 且字符串不需要加引号

    confiparser的使用

    读取数据

    import configparser
    #获取解析器对象
    config=configparser.ConfigParser()
    # 读取某个配置文件
    config.read('a.cfg')
    
    #查看所有的分区
    res=config.sections() #['section1', 'section2']
    print(res)
    
    #查看标题section1下所有key=value的key
    options=config.options('section1')
    print(options) #['k1', 'k2', 'user', 'age', 'is_admin', 'salary']
    
    #查看标题section1下所有key=value的(key,value)格式
    item_list=config.items('section1')
    print(item_list) #[('k1', 'v1'), ('k2', 'v2'), ('user', 'egon'), ('age', '18'), ('is_admin', 'true'), ('salary', '31')]
    
    #查看标题section1下user的值=>字符串格式
    val=config.get('section1','user')
    print(val) #egon
    
    #由于使用前需要进行转换,所以模块封装了转换类型的功能,只需要调用对应的函数即可,如下:
    val1=config.getint('section1','age')
    val2=config.getboolean('section1','is_admin')
    val3=config.getfloat('section1','salary')

    添加,删除,修改

    import configparser
    
    config=configparser.ConfigParser()
    config.read('a.cfg',encoding='utf-8')
    
    #删除整个标题section2
    config.remove_section('section2')
    
    #删除标题section1下的某个k1和k2
    config.remove_option('section1','k1')
    config.remove_option('section1','k2')
    
    #判断是否存在某个标题
    print(config.has_section('section1'))
    
    #判断标题section1下是否有user
    print(config.has_option('section1',''))
    
    
    #添加一个标题
    config.add_section('jack')
    
    #在标题egon下添加name=egon,age=18的配置
    config.set('jack','name','egon') # 如果已存则覆盖原来的值
    #config.set('jack','age',18) #报错,必须是字符串
    
    #最后将修改的内容写入文件,完成最终的修改
    config.write(open('a.cfg','w'))

    代码创建生成文件

    import configparser
    
    config = configparser.ConfigParser()
    config.add_section("setion1")
    config.set("setion1","name","zhangsn")
    
    with open("test.config","w") as f:
        config.write(f)

      总结configparser 用于解析配置文件,虽然可以修改和,创建,配置文件,但是并不常用,解析才是其核心功能!

     

  • 相关阅读:
    Luogu P4053 [JSOI2007]建筑抢修
    CF894E Ralph and Mushrooms
    Boruvka
    Codeforces Beta Round #25 (Div. 2 Only) C. Roads in Berland
    HDU 3714/UVA1476 Error Curves
    HDU 5410 CRB and His Birthday
    HDU 1796 How many integers can you find
    UVA 11624 Fire!
    POJ 3279 Dungeon Master
    POJ 1321 棋盘问题
  • 原文地址:https://www.cnblogs.com/ShenJunHui6/p/10742382.html
Copyright © 2020-2023  润新知