ini介绍
.ini 文件是Initialization File的缩写,即初始化文件,是windows的系统配置文件所采用的存储格式,统管windows的各项配置,一般用户就用windows提供的各项图形化管理界面就可实现相同的配置了。但在某些情况,还是要直接编辑ini才方便,一般只有很熟悉windows才能去直接编辑。
ini结构
在python读取ini文件之前,我们首先来了解下init文件的结构;一个ini文件主要是由多个section组成,每个section中又有多个option,其每个option的格式是key=value键值对的形式进行存储;
注意:section不能重复,里面数据通过section去查找,每个seletion下可以有多个key和vlaue的键值对,注释用英文分号(;)
python3里面自带configparser模块来读取ini文件
1、导包
# 导包import configparserconfig = configparser.ConfigParser() # 类实例化2.读取文件内容
config.read("data_ini.ini")value = config['mysqld']['username']print("第一种方法读取的值:",value)# 第二种读取ini文件方式,通过get方法value = config.get('mysqld','db_name')print('第二种方法读取到的值:',value)# 第三种读取ini文件方式,读取到一个section中的所有数据,返回一个列表value = config.items('test_ini')print('第三种方法读取到的值:',value)执行结果:
通过上面两种方式,我们发现读取到的数据全部是str类型。如果我们想要得到指定数据类型的数据可以使用以下方法:
getint() getfloat() getboolean()
value = config.getint('mysqld','password')print('这是第四种方法读取到的值:',value)print('这是第四种方法读取到的值的数据类型:',type(value))执行结果:
read返回的是如果能够加载此文件的话,则返回对应的文件名,且可以同时加载多个文件,多个文件以可迭代对象的形式存在即可
get_result=conf_read.read(["data_ini.ini","test.ini"])#加载文件后,其内容在configparser对象中,并没有在返回值中print(get_result)执行结果:
3.write写入
write写入有两种方式,一种是删除原文件内容,重新写入:w
conf.write(open(cfgpath, “w”)) # 删除原文件重新写入另外一种是在原文件基础上继续写入内容,追加模式写入:a
conf.write(open(cfgpath, “a”)) # 追加模式写入在ini文件上追加写入一项section内容
import configparser# 创建管理对象conf = configparser.ConfigParser() # 添加一个selectconf.add_section("teacher_info")print(conf.sections()) # 往select添加key和valueconf.set("teacher_info", "name", "lisi")conf.set("teacher_info", "sex", "male")items = conf.items('teacher_info')print(items) # list里面对象是元祖with open("test.ini","a",encoding="utf-8") as fp: fp.seek(2) #此处记得让流的指针设置到文件末尾,否则追加格式不好看 conf.write(fp) # 追加模式写入执行结果:
运行后会发现ini文件最后新增了写入的内容了
4.set修改ini文件
需求:比如我想把前面test.ini文件里面的[default]下的test改成"默认"
import configparser# 创建管理对象conf = configparser.ConfigParser()# 先读出来conf.read("test.ini",encoding="utf-8")# 修改section里面的值conf.set("default", "test", "默认") # 写入中文conf.write(open("test.ini", "r+", encoding="utf-8")) # r+模式执行结果:
了解更多信息关注公众号