Python读写配置文件模块--Configobj
一、介绍
我们在项目的开发过程中应该会遇到这样的问题:我们的项目读取某个配置文件,然后才能按照配置的信息正常运行服务,当我们需要对修改服务的某些信息时,可以直接修改这个配置文件,重启服务即可,不用再去打开项目代码进行修改,这样方便了我们后期运维人员的工作。
读取配置文件信息,修改配置文件,我们可以使用Configobj和ConfigParser模块,个人推荐使用Configobj模块,因为Configobj相比于ConfigParser,优势在于Configobj模块的使用更加清晰简单(其实是我看到ConfigParser模块好像复杂一点,自己选了个简单点的模块而已,哈哈哈哈哈)。
pip install configobj
configobj的简单之处就在于,它是以字典的形式来读取/修改配置文件,就跟操作字典一样,很简单,下面看看例子就知道了。
二、configobj的使用
1、test.cfg配置文件
配置文件内容如下
[server] name = zbj port = 9000 [home] # 注释 area = huizhou
2、读取配置文件信息
from configobj import ConfigObj # 实例化一个Configobj对象,给ConfigObj一个配置文件的路径,然后通过字典来访问成员,子段也是一个字典 cfg_path = "./test.cfg" config = ConfigObj(cfg_path, encoding='UTF-8') # 读配置文件 print(config['server']) # {'name': 'zbj', 'port': '9000'} print(config['server']['name']) # zbj
3、修改配置文件
from configobj import ConfigObj cfg_path = "./test.cfg" config = ConfigObj(cfg_path, encoding='UTF-8') config['server']['name'] = "clj" # 修改完记得write写入配置文件 config.write()
4、给配置文件添加新项
from configobj import ConfigObj
cfg_path = "./test.cfg" config = ConfigObj(cfg_path, encoding='UTF-8') config['school'] = {} config['school']['class'] = "three" # 只要进行了修改(包括新增删除等)的操作,记得write修改 config.write()
5、删除配置文件中的某个项
from configobj import ConfigObj cfg_path = "./test.cfg" config = ConfigObj(cfg_path, encoding='UTF-8') del config['school'] del config['server']['port'] config.write()
6、将配置文件写入到不同的文件
from configobj import ConfigObj cfg_path = "./test.cfg" config = ConfigObj(cfg_path, encoding='UTF-8') config.filename = "./test.ini" config.write() # 此时会新建一个test.ini文件,然后会将test.cfg的内容写入到test.ini文件
7、创建新的配置文件
from configobj import ConfigObj # 实例化一个ConfigObj对象 config = ConfigObj() # filename指定新创建的文件路径和名称 config.filename = './my_cfg.ini' # 写入配置信息 config['people'] = {} config['people']['name'] = 'zzbj' config['people']['age'] = '18' config.write()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix