Python使用ConfigParser读写配置文件详解
本文介绍如何使用Python内置的ConfigParser模块进行配置文件(如ini格式)的读写操作。通过获取项目根目录、读取指定Section的值以及写入修改后的配置,展示完整的文件路径处理与配置更新流程,适用于需要动态管理应用配置的场景。
配置文件读写基础
在Python开发中,配置文件常用于存储数据库连接、服务端口等环境相关参数。Python标准库提供了configparser模块,专门用于处理类似Windows INI格式的配置文件。该模块支持读取、修改和写入配置项,能够按Section(节)和Option(选项)进行结构化操作。
配置文件示例
假设存在一个名为app.conf的配置文件,其内容结构如下:
[mysql]
host = 1234
port = 3306
user = root
password = Zhsy08241128
database = leartd读取配置文件
读取配置的核心在于定位文件路径并解析内容。为了保持代码的健壮性,通常建议通过当前脚本的绝对路径来推导配置文件的路径,避免相对路径带来的不确定性。
具体操作步骤如下:
- 确定根目录:利用
os.path.abspath(__file__)获取当前脚本的绝对路径,再通过os.path.dirname两次调用向上回溯,获取项目根目录。 - 拼接路径:将根目录与配置文件相对路径(如
/ceshi/conf/app.conf)拼接,得到完整文件路径。 - 解析配置:实例化
configparser.ConfigParser(),调用.read()方法加载文件。 - 获取值:使用
.get(section, option)方法获取指定节下的具体配置项。
代码实现如下:
import configparser
import os
conf = configparser.ConfigParser()
def readConf():
'''读取配置文件'''
# 获取项目根目录
root_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# 拼接配置文件完整路径
conf.read(root_path + '/ceshi/conf/app.conf')
print(conf)
# 获取指定section的option值
name = conf.get("mysql", "host")
print(name)写入配置文件
修改配置时,需注意configparser的行为机制:它不会自动保存修改,必须显式调用.write()方法将内存中的配置写回磁盘。此外,写入操作会覆盖原文件内容,因此建议先读取现有配置,修改特定项后再写入。
操作步骤如下:
- 加载配置:同样通过根目录拼接路径,调用
.read()加载当前配置。 - 修改项:使用
.set(section, option, value)方法更新指定配置项的值。 - 保存更改:以写模式(
'w')打开目标文件,并将该文件对象传递给.write()方法完成保存。
代码实现如下:
def writeConf():
'''写入配置文件'''
root_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# 先读取现有配置,避免其他项丢失
conf.read(root_path + '/ceshi/conf/app.conf')
# 修改指定section的option
conf.set("mysql", "host", "1234")
# 将修改后的配置写入文件
conf.write(open(root_path + '/ceshi/conf/app.conf', 'w'))注意事项
在使用write()方法时,如果目标文件不存在,Python会自动创建该文件;如果已存在,则会覆盖原内容。因此,在执行写入操作前,建议确认文件路径正确,并备份重要配置,以防误操作导致数据丢失。此外,configparser默认不区分大小写,Section和Option的名称会被转换为小写存储。
以上就是Python实现config文件读写功能的详细内容,更多关于Python配置文件操作及ConfigParser模块的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













