python学习笔记31:操作ini文件

python操作ini文件

1. ini文件是什么

[本节内容来自百度百科]
.ini 文件是Initialization File的缩写,即初始化文件, 是windows的系统配置文件所采用的存储格式,统管windows的各项配置,一般用户就用windows提供的各项图形化管理界面就可实现相同的配置了。但在某些情况,还是要直接编辑.ini才方便,一般只有很熟悉windows才能去直接编辑。开始时用于WIN3X下面,WIN95用注册表代替,以及后面的内容表示一个节,相当于注册表中的键。
除了windows2003很多其他操作系统下面的应用软件也有.ini文件,用来配置应用软件以实现不同用户的要求。一般不用直接编辑这些.ini文件,应用程序的图形界面即可操作以实现相同的功能。它可以用来存放软件信息,注册表信息等。

2. ini文件基本格式

ini文件由节, 键, 值组成.
[section]
key = value

注释以#或分号开始.

file.ini

; note
# sample

[section0]
param00 = value00
param01 = value01

[section1]
param10 = value10
param11 = value11

3. 用python操作ini文件

>>> import configparser # 导入包
>>> 
>>> conf = configparser.ConfigParser() # 实例化
>>> conf.read('file.ini', encoding='utf-8') # 读取文件
['file.ini']
>>> 
>>> ##############
>>> #访问ini内容
>>> ##############
>>> 
>>> # 获取所有section的名称, 是一个list.
>>> _list_sections = conf.sections()
>>> print(f'{type(_list_sections)} {_list_sections}')
<class 'list'> ['section0', 'section1']
>>> 
>>> # 获取section下所有的键(option), 是一个list.
>>> _list_items = conf.options('section0')
>>> print(f'{type(_list_options)} {_list_options}')
<class 'list'> ['param00', 'param01']
>>> 
>>> 
>>> # 获取section下所有的键值对, 是一个list.
>>> _list_items = conf.items('section0')
>>> print(f'{type(_list_items)} {_list_items}')
<class 'list'> [('param00', 'value00'), ('param01', 'value01')]
>>> 
>>> # 使用dict的方式获取value, 返回str类型
>>> val00 = conf['section0']['param00']
>>> print(f'{type(val00)} {val00}')
<class 'str'> value00
>>> 
>>> # 使用get()获取value, 返回str类型
>>> s_val11 = conf.get('section1', 'param11')
>>> print(f'{type(s_val11)} {s_val11}')
<class 'str'> 11
>>> 
>>> # 使用getint()获取value, 返回int类型
>>> # 类似的还有getfloat(), getboolean()
>>> i_val11 = conf.get('section1', 'param11')
>>> print(f'{type(i_val11)} {i_val11}')
<class 'int'> 11
>>> 
>>> ##############
>>> #a判断ini内容
>>> ##############
>>> print(conf.has_section('section2')) # 判断section是否存在
False
>>> print(conf.has_option('section2', 'param20')) # 判断option是否存在
False # section不存在, 则option肯定不存在, 返回False
>>> 
>>> print(conf.has_option('section1', 'param20')) # 判断option是否存在
False # section存在, option不存在, 返回False
>>> 
>>> print(conf.has_option('section1', 'param10')) # 判断option是否存在
True # section存在, option存在, 返回True
>>> 
>>> ##############
>>> #修改ini内容
>>> ##############
>>> 
>>> # 添加section
>>> conf.add_section('section2')
>>> print(conf.sections())
['section0', 'section1', 'section2']
>>> 
>>> # 添加新的key
>>> conf.set('section2', 'param20', 'value20')
>>> 
>>> # 修改已有key的value
>>> conf.set('section1', 'param10', 'value10_new')
>>> 
>>> # 删除section, 删除key
>>> conf.remove_section('section0') # 删除整个section
True
>>> conf.remove_option('section1', 'param11') # 删除option, 也可以用del conf['section1']['param11']
>>> 
>>> # 写到文件中
>>> conf.write(open('file_out.ini', 'w'))


posted @ 2022-04-20 11:18  编程驴子  阅读(302)  评论(0编辑  收藏  举报