Python3 - 如何操作(增删改查)ini文件

Python3 - 如何操作(增删改查)ini文件

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
  • 增加一个新的 section
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
  • 删除一个值和 section
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 中测试通过。

Rating: