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
文件读操作
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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文件中,但数据会存在内存中,程序关闭前可以查看调用更改该数据
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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进文件,但仍然可以查看到,因为存在内存中
['password', 'home', 'max_disksize', 'auth_status']