IT运维笔记


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 模块为常用的操作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值,不会存在注释无法读取的缺陷 用法示例 示例文件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()