Python操作配置文件ini的三种方法讲解

Finn
Finn
发布时间:2026-10-13| 6人浏览过
原创

本文详细介绍在Python中操作ini配置文件的三种常用方法。首先讲解Linux下的crudini命令行工具,涵盖增删改查及合并操作;其次分析内置ConfigParser模块的使用及其无法保留注释的局限性;最后介绍功能更完善的configobj模块,展示其读取、修改、添加及删除配置项的具体代码示例,帮助开发者根据实际需求选择合适的方案。

本文介绍在Python环境中操作ini配置文件的三种主要方法。

方法一:使用crudini命令

说明

crudini是一个在Linux系统中用于操作配置文件的命令行工具。

用法

crudini --set [--existing] config_file section [param] [value] # 修改配置文件内容
crudini --get [--format=sh|ini] config_file [section] [param] # 获取配置文件内容
crudini --del [--existing] config_file section [param]     # 删除配置文件内容
crudini --merge [--existing] config_file [section]       # 合并

举例

添加配置项

 crudini --set test.ini test_section test_param test_value

更新现有配置

 crudini --set [--existing] test.ini test_section test_param test_value

删除配置项

删除指定param:

 crudini --del test.ini test_section test_param

删除整个section:

 crudini --del test.ini test_section

获取配置内容

 crudini --del test.ini test_section test_param

若目标标量不属于任何section,则section参数需使用空字符串表示:

 crudini --del test.ini '' test_param

合并配置文件

将another.ini的内容合并到test.ini中:

 crudini --merge test.ini < another.ini

方法二:使用ConfigParser模块

说明

ConfigParser是Python中处理ini文件的常用内置模块,但存在一定局限性:它无法识别section的大小写差异,且无法保留文件中的注释。因此,在修改包含注释的配置文件时,可能会导致注释丢失。

用法示例

示例文件test.ini

[test_section]
test_param = test_value

读取配置

import ConfigParser
config = ConfigParser.ConfigParser()
config.readfp(open('test.ini'))
test_value = config.get("test_section","test_param")

写入配置

添加新的section

import ConfigParser
config = ConfigParser.ConfigParser()
# set a value of parameters
config.add_section("test_section2")
config.set("test_section2", "test_param2", "test_value2")
config.set("test_section3", "test_param3", "test_value3")
# write to file
config.write(open('test.ini', "w"))

修改现有配置

import ConfigParser
config = ConfigParser.ConfigParser()
config.read('1.ini')
config.set("test_section", "test_param3", "test_value3")
config.write(open('test.ini', "r+")) 

方法三:使用configobj模块

说明

使用configobj读取配置文件的常规做法是传入文件名,随后通过字典方式访问成员,利用子字段获取value值。该模块的优势在于能够正确读取并保留文件中的注释,避免了ConfigParser的相关缺陷。

用法示例

示例文件test.ini

[test_section]
test_param = test_value

读取配置

from configobj import ConfigObj 
config = ConfigObj("test.ini",encoding='UTF8') 
# 读配置文件 
print config['test_section'] 
print config['test_section']['test_param '] 

修改配置

from configobj import ConfigObj 
config = ConfigObj("test.ini",encoding='UTF8') 
config['test_section']['test_param '] = "test_value2" 
# 写入
config.write() 

添加新的section

from configobj import ConfigObj 
config = ConfigObj("test.ini",encoding='UTF8') 
config['test_section2'] = {} 
config['test_section2']['test_param'] = "test_value" 
# 写入
config.write() 

删除配置项

from configobj import ConfigObj 
config = ConfigObj("test.ini",encoding='UTF8') 
del config['test_section2']['test_param'] 
config.write() 

总结

以上就是本文的全部内容,希望这些内容能对您的学习或工作提供参考价值。感谢支持。如需了解更多相关信息,请查阅相关链接。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。