• ConfigParser 模块


    info.ini

    [luke]
    password = e10adc3949ba59abbe56e057f20f883e
    root = 
    max_disksize = 
    auth_status = False
    
    [chen]
    password = c33367701511b4f6020ec61ded352059
    root = 
    max_disksize = False
    
    [ooo]
    password = 13258
    root =
    max_disksize = False
    

    文件读操作

     1 import configparser
     2 
     3 config = configparser.ConfigParser(allow_no_value=True)
     4 config.read('usrinfo.ini')
     5 
     6 print(config)
     7 #
     8 secs = config.sections()
     9 print('secs',secs)
    10 
    11 options = config.options('luke')
    12 # key =  options['password']
    13 print('option',options)
    14 
    15 item_list = config.items('luke')
    16 print('item_list',item_list)
    17 
    18 key_val = config.get('luke','password')
    19 # val1 = config.getint('luke','password')
    20 print('key_val',key_val)
    21 
    22 print(config['luke']['password'])
    <configparser.ConfigParser object at 0x000002C194D484E0>
    secs ['luke', 'chen', 'ooo']
    option ['password', 'root', 'max_disksize', 'auth_status']
    item_list [('password', 'e10adc3949ba59abbe56e057f20f883e'), ('root', ''), ('max_disksize', ''), ('auth_status', 'False')]
    key_val e10adc3949ba59abbe56e057f20f883e
    e10adc3949ba59abbe56e057f20f883e
    

    文件改写操作

    1.此处注意改写操作前,必须有config.read读操作,否则就相当于以写的操作open usrinfo.ini,直接write 空数据,
    会把usrinfo.ini中的数据全部清空;
    2.前面加了config.read读操作,貌似会在后面的config.write中默认把读出的数据重新写入到文件中;
    3.config.remove_section把config.read读出的数据删除相关选项,再在config.write时把更新的数据写回
    usrinfo.ini文件中。
    4.因此,在改写操作前要先config.read出数据,改写完成后再config.write。
     1 import configparser
     2 
     3 config = configparser.ConfigParser(allow_no_value=True)
     4 config.read('usrinfo.ini')
     5 
     6 #删除
     7 print('删除前的节点',config.sections())
     8 sec = config.remove_section('ooo') #删除节点oo
     9 config.write(open('usrinfo.ini', "w"))
    10 print('删除后的节点',config.sections())
    11 '''
    12 1.此处注意改写操作前,必须有config.read读操作,否则就相当于以写的操作open usrinfo.ini,直接write 空数据,
    13 会把usrinfo.ini中的数据全部清空;
    14 2.前面加了config.read读操作,貌似会在后面的config.write中默认把读出的数据重新写入到文件中;
    15 3.config.remove_section把config.read读出的数据删除相关选项,再在config.write时把更新的数据写回
    16 usrinfo.ini文件中。
    17 4.因此,在改写操作前要先config.read出数据,改写完成后再config.write。
    18 '''
    19 
    20 #增加
    21 sec = config.has_section('GG') # 如果有此节点 返回True,没有返回False
    22 sec = config.add_section('GG')
    23 config.write(open('usrinfo.ini', "w"))
    24 print('add后的节点',config.sections())
    25 
    26 #赋值
    27 config.set('chen','root', '1111') #若key中有对应的root会直接给root赋'1111'
    28 config.set('chen','k1', '1111') #若key中没有对应的k1,会先生成一个k1再给k1赋'1111'
    29 config.write(open('usrinfo.ini', "w"))
    改写
    删除前的节点 ['luke', 'chen', 'ooo']
    删除后的节点 ['luke', 'chen']
    add后的节点 ['luke', 'chen', 'GG']
    

     5.若改写后没有config.write,则改写后的数据不会写入usrinfo.ini文件中,但数据会存在内存中,程序关闭前可以查看调用更改该数据

    1 import configparser
    2 
    3 config = configparser.ConfigParser(allow_no_value=True)
    4 config.read('usrinfo.ini')
    5 
    6 #改写
    7 config['luke']['home'] = '123456'
    8 options = config.options('luke')
    9 print(options) #改写后没有config.write进文件,但仍然可以查看到,因为存在内存中
    View Code
    ['password', 'home', 'max_disksize', 'auth_status']
    

      

      

      

  • 相关阅读:
    bzoj1002/luogu2144 轮状病毒 (dp)
    bzoj1003/luogu1772 物流运输 (dijkstra+dp)
    bzoj1007/luogu3194 水平可见直线 (单调栈)
    [模板]群论
    http 协议媒体格式
    java加密类支持sha256,md5,HmacSha1,base64
    java逐行读写借助buffereader/bufferwriter
    java 基础io读写字节以及缓存读写字节
    java log4i.properties
    java 迭代器
  • 原文地址:https://www.cnblogs.com/lukechenblogs/p/8557668.html
Copyright © 2020-2023  润新知