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

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

本文详细介绍在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 相关产品和应用

全部下载

专题列表