Python configparser模块详解:INI配置文件读写与格式规范

周予安
周予安
发布时间:2026-10-15 | 3人浏览过
原创

本文详细介绍Python中用于处理INI配置文件的configparser模块。内容涵盖INI文件的基本结构(Section、Key、Value)、大小写与空格处理规则、DEFAULT特殊区块的作用,以及如何使用read、get、items等方法读取配置,并通过add_section和write方法实现配置的增删改。特别指出Python 3中需指定encoding="utf-8"以支持中文注释,并对比了写入模式'w'与'a'的区别。

INI文件概述

INI是英文“初始化”(initialization)的缩写,通常用于对操作系统或特定程序进行初始化或参数设置。

其基本结构由节(section)、键(key)和值(value)三部分构成。在Windows系统中,存在大量此类文件,例如“System32.ini”和“Win.ini”,这些文件在系统配置中较为常见。

在Python中,操作此类配置文件的标准模块为configparser。该模块专门用于解析与Windows上INI文件结构相似的文件,提供统一的接口进行配置管理。

关于configparser模块

需要注意的是,在Python 2中该模块名为Configparser(首字母大写),而在Python 3中已统一改为configparser(全小写)。该模块的核心功能是作为INI配置文件的解析器。

其核心作用是通过模块提供的RawConfigParser()、ConfigParser()或SafeConfigParser()这三个类(任选其一)来创建配置解析对象。

创建对象后,即可利用该对象提供的方法对指定的配置文件执行增加、删除、修改和查询(CRUD)操作。

本文示例基于Python 3.8版本,开发环境使用PyCharm编译器。

INI文件格式规范

一个标准的INI配置文件主要由以下部分组成:

Section(节):表示一个配置区块,由方括号及其中的名称定义。Section的作用范围从当前方括号开始,直到下一个方括号出现之前。常见的示例包括“DEFAULT”、“select”和“connect_mysql”。

关于Section的规范:名称在保存和获取时保持原样,即大小写不同或包含不同空格均被视为不同的Section;此外,同一个配置文件中不允许出现重复的Section名称。

Option(选项):表示Section内的具体配置项,由Key、分隔符和Value组成的键值对。例如在“select”节下的“broswer = Chrome”。

关于Option的规范:Key在保存时会自动转换为小写,因此Key不区分大小写;但Value严格区分大小写。在通过Key获取Value时,系统会自动去除Key和Value前后的空格再进行匹配,例如文件中保存为' broswer = Chrome '时,使用'broswer'也能成功获取'Chrome'。Key不能跨行,但Value可以跨行,只要后续行的缩进与第一行不同即可,直到遇到下一个Option为止。同一Section下不允许出现重复的Key。分隔符可以使用等号“=”或冒号“:”。

注释:行注释以井号“#”或分号“;”表示。必须注意,注释符号必须位于行首(前面允许有空格),若出现在行中间则不会被识别为注释。

DEFAULT:这是一个特殊的Section,用作其他Section中Key取值失败时的备用值。可以将其理解为根节点,其他Section可视为其子节点,但该Section并非必须存在。

读取配置文件

import os
import configparser

conf = configparser.ConfigParser() # 类的实例化

curpath = os.path.dirname(os.path.realpath(__file__))
path = os.path.join(curpath,'read.ini')

conf.read(path,encoding="utf-8")
value = conf['select']['url']
print("通过read方法取得的值为:",value)

value = conf.get('login','username')
print('通过get方法取得的值:',value)

value = conf.items('login') # 读取一个section中的所有数据,返回一个列表
print("通过items方法取得的值:",value)

value = conf.getint('connect_mysql','port') # 指定读取数据的类型
print("指定数据类型取出的值:",value)

section = conf.sections() # 读取配置文件中所有section
print(section)

执行上述代码后的运行结果如下所示。

注意:如果配置文件中包含中文注释,在Python 3中读取时必须添加参数encoding="utf-8",否则程序会报错。

conf.read(path,encoding="utf-8")

写入配置文件

import os
import configparser


conf = configparser.ConfigParser() # 类的实例化

curpath = os.path.dirname(os.path.realpath(__file__))
path = os.path.join(curpath,'read.ini')

conf.add_section('login') # 添加一个新的section
conf.set('login','username','admin')
conf.set('login','password','123123')   # 往配置文件写入数据
conf.write(open(path,'a'))  # 保存数据

运行写入代码后查看配置文件,可以看到新的Section已成功写入文件中。

write方法常用有两种写入方式,第一种是删除原文件内容后重新写入:

conf.write(open(path,'w'))

第二种是在原文件基础上继续追加内容,采用追加模式写入:

conf.write(open(path,'a'))

总结

至此,关于Python ini配置文件的介绍已完成。如需了解更多相关Python ini配置文件内容,请搜索本站历史文章或继续浏览后续相关文章,希望大家以后多多支持本站!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表