Python3中configparser模块读写ini文件并解析配置的用

介绍configparser模块

Python标准库中的configparser模块提供了一种处理配置文件(以ini格式存储)的方法。它能够读取、修改以及解析ini文件中的配置。这个模块以C的iniparser库为基础,目的是为了提供一组更友好的Python API。

configparser模块的用法

1.读取ini文件中的配置项

我们可以使用configparser模块的ConfigParser类来读取ini文件中的配置项。

import configparser

# 创建ConfigParser对象

config = configparser.ConfigParser()

# 读取配置文件

config.read('config.ini')

# 获取指定section中的配置

temperature = config.get('temperature', 'current_temp')

print(temperature)

这里我们读取了名为config.ini的配置文件,并从其temperature section中读取current_temp配置项的值。这个方法返回的结果是字符串类型。

2.修改ini文件中的配置项

我们也可以使用ConfigParser类来修改ini文件中的配置项。

import configparser

# 创建ConfigParser对象

config = configparser.ConfigParser()

# 读取配置文件

config.read('config.ini')

# 修改指定section中的配置

config.set('temperature', 'current_temp', '0.8')

# 保存修改后的配置文件

with open('config.ini', 'w') as f:

config.write(f)

这里我们修改了temperature section中的current_temp配置项的值为0.8。

3.新增ini文件中的配置项

我们也可以使用ConfigParser类来新增ini文件中的配置项。

import configparser

# 创建ConfigParser对象

config = configparser.ConfigParser()

# 读取配置文件

config.read('config.ini')

# 新增配置项

config.add_section('debug_mode')

config.set('debug_mode', 'enabled', 'True')

# 保存修改后的配置文件

with open('config.ini', 'w') as f:

config.write(f)

这里我们新增了一个名为debug_mode的section,并在其中添加了一个enabled配置项,其值为True。

解析配置项

解析配置项是指将字符串类型的配置项值转换为其他类型。例如,将读取到的字符串类型的配置项值转换为整型或浮点型。

1.将配置项值转换为整型

我们可以使用Python内置的int()函数将配置项值转换为整型。

import configparser

# 创建ConfigParser对象

config = configparser.ConfigParser()

# 读取配置文件

config.read('config.ini')

# 将string类型的配置项值转换为int类型

temperature = int(config.get('temperature', 'current_temp'))

print(temperature, type(temperature))

这里我们先读取了ini文件中名为config.ini的配置文件,并从其temperature section中读取current_temp配置项的值。我们使用int()函数将其转换为整型,并输出其类型。

2.将配置项值转换为浮点型

我们可以使用Python内置的float()函数将配置项值转换为浮点型。

import configparser

# 创建ConfigParser对象

config = configparser.ConfigParser()

# 读取配置文件

config.read('config.ini')

# 将string类型的配置项值转换为float类型

temperature = float(config.get('temperature', 'current_temp'))

print(temperature, type(temperature))

这里我们先读取了ini文件中名为config.ini的配置文件,并从其temperature section中读取current_temp配置项的值。我们使用float()函数将其转换为浮点型,并输出其类型。

3.将配置项值转换为布尔型

我们可以自定义函数,将配置项值转换为布尔型。

import configparser

# 创建ConfigParser对象

config = configparser.ConfigParser()

# 读取配置文件

config.read('config.ini')

# 将string类型的配置项值转换为bool类型

def str2bool(v):

return v.lower() in ('yes', 'true', 't', '1')

debug_mode_enabled = str2bool(config.get('debug_mode', 'enabled'))

print(debug_mode_enabled, type(debug_mode_enabled))

这里我们先读取了ini文件中名为config.ini的配置文件,并从其debug_mode section中读取enabled配置项的值。然后我们自定义了一个函数str2bool,用于将字符串类型的配置项值转换为布尔型。最后我们应用这个函数,将enabled配置项的值转换为布尔型,并输出其类型。

总结

在Python中,我们可以使用configparser模块来读取、修改ini文件中的配置项,并将其解析为其他类型。通过这种方法,我们可以实现程序的配置与参数分离,从而更加方便地修改程序的许多参数。但是,使用ini文件也需要提高规范性,避免出现重复以及不合法数据。

后端开发标签