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']

  

  

  

原文地址:https://www.cnblogs.com/lukechenblogs/p/8557668.html