ini 格式的配置文件简单易读,经常会用在一些简单应用场合。在 python 中, 可以通过 ConfigParser 进行 ini 文件的操作。
代码示例
假定我们有个 test.ini 文件,位于 assets 目录下面,/assets/test.ini 文件内容如下
1
2
3
4
5
6
| [section_1]
string_val = hello
bool_val = false
int_val = 11
pi_val = 3.14
|
下面示例显示对文件的增删改查操作。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
from configparser import ConfigParser
from io import StringIO
# 实例化
config = ConfigParser()
# 读取ini文件
config.read('assets/test.ini')
# 读取section和值
string_val = config.get('section_1', 'string_val')
bool_val = config.getboolean('section_1', 'bool_val')
int_val = config.getint('section_1', 'int_val')
float_val = config.getfloat('section_1', 'pi_val')
print('string_val: {}\nbool_val: {}\nint_val: {}\nfloat_val: {}'.format(string_val, bool_val, int_val, float_val))
|
输出
1
2
3
4
| string_val: hello
bool_val: False
int_val: 11
float_val: 3.14
|
1
2
3
4
| config.set('section_1', 'string_val', 'world')
s = StringIO()
config.write(s)
print('# 更新值\n', s.getvalue())
|
输出
1
2
3
4
5
6
7
8
9
10
| # 更新值
[section_0]
string_val = what
bool_val = true
[section_1]
string_val = world
bool_val = false
int_val = 11
pi_val = 3.14
|
1
2
3
4
5
6
| config.add_section('section_2')
config.set('section_2', 'meal_val', 'spam')
config.set('section_2', 'not_found_val', '404')
s = StringIO()
config.write(s)
print('# 增加一个新的section\n', s.getvalue())
|
输出
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| # 增加一个新的section
[section_0]
string_val = what
bool_val = true
[section_1]
string_val = world
bool_val = false
int_val = 11
pi_val = 3.14
[section_2]
meal_val = spam
not_found_val = 404
|
1
2
3
4
5
| config.remove_option('section_1', 'bool_val')
config.remove_section('section_0')
s = StringIO()
config.write(s)
print('# 删除一个值\n', s.getvalue())
|
输出
1
2
3
4
5
6
7
8
9
|
[section_1]
string_val = world
int_val = 11
pi_val = 3.14
[section_2]
meal_val = spam
not_found_val = 404
|
1
2
3
4
|
with open('tmp/test_update.ini', 'w') as configfile:
config.write(configfile)
|
以上示例在 python3.7 中测试通过。