Python使用configparser模块解析ini文件的方法步骤

 更新时间:2026年05月19日 09:30:31   作者:江上清风山间明月  
本文介绍了在Python中使用configparser模块解析INI文件的方法,首先概述了ini文件格式,然后详细讲述了如何导入模块、创建解析器对象、读取ini文件、访问配置项、常用方法、写入操作、处理默认值以及高级配置,最后给出了示例代码和注意事项,需要的朋友可以参考下

在Python中解析INI文件通常使用标准库中的 configparser模块。以下是如何使用该模块的详细介绍:

1. INI文件格式简介

INI文件由**节(section)键值对(key-value)**组成,结构如下:

[Section1]
key1 = value1
key2 = value2

[Section2]
key3 = value3
  • 节(Section):用[SectionName]表示,用于分组配置项。
  • 键值对(Key-Value):格式为key = value
  • 注释:以#;开头。

2. 使用configparser模块

安装

configparser是Python标准库的一部分,无需额外安装。

基本操作步骤

导入模块

import configparser

创建解析器对象

config = configparser.ConfigParser()

读取INI文件

config.read('config.ini')  # 返回成功读取的文件列表

访问配置项

value = config.get('Section1', 'key1')  # 获取字符串值

3. 常用方法

读取操作

获取所有节

sections = config.sections()  # 返回所有节的列表

获取某个节的所有键

keys = config.options('Section1')  # 返回键的列表

获取键值对(元组列表)

items = config.items('Section1')  # 返回[(key1, value1), (key2, value2)]

获取特定类型的值

# 自动转换类型
value_int = config.getint('Section1', 'key1')
value_float = config.getfloat('Section1', 'key2')
value_bool = config.getboolean('Section2', 'key3')

检查节或键是否存在

has_section = config.has_section('Section1')
has_key = config.has_option('Section1', 'key1')

写入操作

添加/修改节和键值对

config.add_section('NewSection')
config.set('NewSection', 'new_key', 'new_value')

删除节或键

config.remove_option('Section1', 'key1')
config.remove_section('Section1')

保存到文件

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

4. 处理默认值

可以在初始化时通过defaults参数设置默认节(DEFAULT),或在读取时指定回退值:

# 获取值时优先查找DEFAULT节
value = config.get('Section1', 'key1', fallback="default_value")

5. 高级配置

创建解析器时,可通过参数调整行为:

config = configparser.ConfigParser(
    allow_no_value=True,   # 允许键没有值(如空键)
    delimiters=('=', ':'), # 分隔符
    comment_prefixes=('#', ';'),  # 注释符号
    strict=False  # 是否严格检查重复节或键
)

6. 示例代码

读取并打印配置

import configparser

config = configparser.ConfigParser()
config.read('config.ini')

for section in config.sections():
    print(f'[{section}]')
    for key, value in config.items(section):
        print(f'{key} = {value}')

修改并保存配置

config.set('Section1', 'key1', 'updated_value')
config.add_section('NewSection')
config.set('NewSection', 'new_key', '123')

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

7. 注意事项

  • 大小写敏感:默认键名会被转换为小写,可通过config = configparser.ConfigParser(converters={})禁用。
  • 保留注释configparser不会保留原始注释,需使用第三方库(如configobj)处理。
  • 文件编码:默认使用系统编码,如需指定编码,建议用open函数显式处理。

通过以上方法,你可以轻松地在Python中解析和操作INI文件。如果需要更复杂的功能(如嵌套节或类型验证),可以考虑第三方库如configobjtoml

以上就是Python使用configparser模块解析ini文件的方法步骤的详细内容,更多关于Python configparser解析ini文件的资料请关注脚本之家其它相关文章!

相关文章

  • Python实现代码块儿折叠

    Python实现代码块儿折叠

    这篇文章主要介绍了Python实现代码块儿折叠方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • Python中JSON的使用方法(超详细)

    Python中JSON的使用方法(超详细)

    JSON是一种轻量级的数据交换格式,它是JavaScript的子集,易于人阅读和编写,这篇文章主要介绍了Python中JSON的基本使用,需要的朋友可以参考下
    2022-11-11
  • Python中rapidjson参数校验实现

    Python中rapidjson参数校验实现

    通常需要对前端传递过来的参数进行校验,校验的方式有多种,本文主要介绍了Python中rapidjson参数校验实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • Python使用ConfigParser模块操作配置文件的方法

    Python使用ConfigParser模块操作配置文件的方法

    这篇文章主要介绍了Python使用ConfigParser模块操作配置文件的方法,结合实例形式分析了Python基于ConfigParser模块针对配置文件的创建、读取、写入、判断等相关操作技巧,需要的朋友可以参考下
    2018-06-06
  • 解决python便携版无法直接运行py文件的问题

    解决python便携版无法直接运行py文件的问题

    这篇文章主要介绍了解决python便携版无法直接运行py文件的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • python如何快速拼接字符串

    python如何快速拼接字符串

    这篇文章主要介绍了python如何快速拼接字符串,帮助大家理解和学习python,感兴趣的朋友可以了解下
    2020-10-10
  • python 实现分组求和与分组累加求和代码

    python 实现分组求和与分组累加求和代码

    这篇文章主要介绍了python 实现分组求和与分组累加求和代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Python内存管理实例分析

    Python内存管理实例分析

    这篇文章主要介绍了Python内存管理,结合实例形式分析了Python对象的引用、垃圾回收、分配等相关原理与操作技巧,需要的朋友可以参考下
    2019-07-07
  • python pandas实现数据Concat拼接的完整指南

    python pandas实现数据Concat拼接的完整指南

    Pandas是Python中用于数据分析的核心库之一,其concat()函数是数据合并操作的核心工具,本文将通过示例代码和参数解析,全面介绍concat()的用法,有需要的可以了解下
    2025-06-06
  • 在arcgis使用python脚本进行字段计算时是如何解决中文问题的

    在arcgis使用python脚本进行字段计算时是如何解决中文问题的

    这篇文章主要介绍了在arcgis使用python脚本进行字段计算时是如何解决中文问题的,需要的朋友可以参考下
    2015-10-10

最新评论