python解析.ini文件--configparser模块(内置)

第一part:.ini文件的介绍


 1.ini 文件的含义:

是Initialization File的缩写(初始化文件),是windows的系统配置文件所采用的存储格式,统管windows的各项配置,一般用户就用windows提供的各项图形化管理界面就可实现相同的配置了。

2.ini文件的内容结构:
一个ini文件主要是由多个section组成,每个section中又有多个option,其每个option的格式是key=value键值对的形式进行存储;

注意:section不能重复,里面数据通过section去查找,每个seletion下可以有多个key和vlaue的键值对,注释用英文分号(;)


 第二part:python读取.ini文件的内容--》read


 操作.ini文件可以直接使用python的内置模块:configparser

#1.导包
import configparser
#2创建对象
read_ini = configparser.ConfigParser()
#3.读取文件内容
read_ini.read("Database.ini")
#第一种读取ini文件方式,直接读取
value = read_ini['mysql']['user']
print("第一种方法读取的值:",value)
# 第二种读取ini文件方式,通过get方法
value = read_ini.get('mysql','db')
print('第二种方法读取到的值:',value)
# 第三种读取ini文件方式,读取到一个section中的所有数据,返回一个列表
value = read_ini.items('mysql')
print('第三种方法读取到的值:',value)

执行结果如下:

 通过上面三种方式,可以发现读取到的数据全部是str类型,但数据库的端口我们一般都是要获取为int类型,因此可以通过如下几个方法可以将其转换为我们需要的数据类型:

1)getint() 读取的数据为int类型

#读取到值为int类型
value=read_ini.getint('mysql','port')
print('读取到值为int类型:',value)
print('value的类型为:',type(value))
执行结果,如下:

2)getfloat()读取的数据为float类型

#读取到值为float类型
value=read_ini.getfloat('study','price')
print('读取到值为float类型:',value)
print('value的类型为:',type(value))
执行结果,如下:

3)getboolean() 读取的数据为Boolean类型#读取到值为boolean类型

value=read_ini.getboolean('study','result')
print('读取到值为boolean类型:',value)
print('value的类型为:',type(value))
执行结果,如下:


 第三part:python写入内容到.ini文件-->write


 写入有两种方式:一种是删除原文件内容,重新写入:w;另外一种是在原文件基础上继续写入内容,追加模式写入:a

1)重新写入:w

#重新写入
read_ini.write(open("Database.ini"),'w')

2)追加模式写入:a

#追加写入
read_ini.write(open("Database.ini"),'a')

3)在ini文件上追加写入一项section内容

# 添加一个setion

read_ini.add_section("teacher_info")

print(read_ini.sections())

4)在ini文件的section上添加option

# 往setion添加key和value
read_ini.set("info", "English", "Miss huang")

整体代码:

#1.导包
import configparser
#2创建对象
read_ini = configparser.ConfigParser()

#3. 添加一个setion
read_ini.add_section("info")
#4.打印所有的section
print(read_ini.sections())
#5.在section里添加一个option
read_ini.set("info","English","Miss Huang")
#6.以追加的模式写入
with open("Database.ini","a",encoding="utf-8") as fp:
fp.seek(2) #此处记得让流的指针设置到文件末尾,否则追加格式不好看
read_ini.write(fp)

运行后会发现ini文件最后新增了写入的内容:

原文地址:https://www.cnblogs.com/smilecindy/p/13779466.html