1、ini文件介绍
INI文件(全称为Initialization File,初始化文件)是一种简单的文本文件格式,用于存储配置数据。它广泛应用于操作系统和各种应用程序中,用来保存设置、参数或初始化信息。INI文件的基本结构包括节(Sections)、键(Keys)和值(Values),其设计目的是为了让用户或系统能够轻松地阅读和编辑配置信息。
基本结构
- 节(Sections): INI文件可以包含一个或多个节,每个节由方括号包围的标题表示,通常是唯一的,用于组织相关的配置选项。节名不区分大小写,但建议使用大写字母以增加可读性。
示例:[SectionName] - 键(Keys): 每个节下可以有一个或多个键值对,键由等号(=)分隔其名称和值。键名也不区分大小写,但建议保持清晰和一致性。
示例:Key_Name=Value - 值(Values): 键对应的值可以是任何文本内容,包括数字、字符串或布尔值的表示形式(尽管布尔值通常以特定字符串或数字表示)。
2、python读取ini
写
因为有一个设置需要保存True与False,然后用ini保存了。
"""新建配置"""config = ConfigParser()config.add_section('Settings') # 增加一个节点config.set('Settings', 'ye_number', '30') # 列表行数设置config.set('Settings', 'quality', '90') # 图片质量配置config.set('Settings', 'benmk', 'False') # 仅查看本模块节点用例with open('data/config.ini', 'w') as configfile:config.write(configfile) # 写入文件
存好了,是这样:
读
读就遇到问题了,代码如下,获取’benmk’的值,判断是True还是False。
self.benmk = config.get('Settings', 'benmk') # 仅查看本模块用例if self.benmk:passelse:pass
然后就一直给我返回True,断点看’benmk’是个str类型。
这里的 False 实际上是一个字符串,而不是布尔值。当使用Python的 ConfigParser 或其他INI文件解析器读取这个值时,就会得到一个字符串 “False”,而不是布尔值 False。(上面文件查看器里面看benmk = False,挺迷惑人的)
为了将字符串 “False” 转换为布尔值 False,需要在读取值后进行转换。
开始想的是用bool转换读取的值,发现不行。
bool()函数可以接受几乎任何类型的输入,并根据一系列规则将其转换为布尔值。以下是一些基本的转换规则:数字类型:非零整数和浮点数被转换为True,而0(零)和0.0(零的浮点数表示)被转换为False。
字符串类型:非空字符串被转换为True,而空字符串""被转换为False。
只想存True与False
还真找到了解决方法:
- config.getboolean 用于从配置(config)对象中获取一个布尔类型的值。这个函数通常用于处理配置文件(如INI、JSON或特定格式的配置文件)中的设置,其中布尔值可能以字符串形式(如 “true”、“false”、“1”、“0”)存储。
self.benmk = config.getboolean('Settings', 'benmk')
# 注意,如果值不是'yes'/'true'/'on'/'1'或'no'/'false'/'off'/'0'之一,这会抛出ValueError