ini配置文件怎么存取False

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/11667.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Office之Word应用(二)

一、页眉添加文件名称和页码 1、双击页眉,点击“页眉-空白(三栏)” 2、删掉第一处(鼠标放在上面就会选中,Enter即可),第二处输入文档名称,第三处插入页码。 注:插入页码时…

Jmeter 性能-阶梯负载最终请求数

1、设置阶梯加压线程组请求参数 说明: 每隔2秒钟,会在1秒内启动5个线程 每次线程加载之后都会运行2s然后开始下一次线程加载 最终会加载50个线程并持续运行30s 50个线程持续运行30s后,会每隔2秒钟停止5个线程,剩余的线程继续负…

pytest教程-44-钩子函数-pytest_report_collectionfinish

领取资料,咨询答疑,请➕wei: June__Go 上一小节我们学习了pytest_report_header钩子函数的使用方法,本小节我们讲解一下pytest_report_collectionfinish钩子函数的使用方法。 pytest_report_collectionfinish 钩子函数在 pytest 完成所有测…

【windows】typora激活教程

申明 个人以为,Typora是最好用的markdown编辑软件,以下内容纯属个人实验,请购买正版license支持作者。 详细步骤 按照以下步骤找到Typora安装目录并修改这个以LicenseIndex开头命名的JavaScript 文件: 找到安装 Typora 的目录…

部署达梦数据库主从配置详细操作DM8

服务器配置 主库 192.168.81.128 实例名 dm-1 从库 192.168.81.129 实例名 dm-2 以下安装部署主从服务器都操作 关闭防火墙 systemctl stop firewalld && systemctl disable firewalld 注意安装前必须创建 dmdba 用户,禁止使用 root 用户安装数据库。…

前端面试:谈谈 JS 垃圾回收机制

垃圾回收 JavaScript 中的内存管理是自动执行的,而且是不可见的。我们创建基本类型、对象、函数……所有这些都需要内存。 当不再需要某样东西时会发生什么? JavaScript 引擎是如何发现并清理它? 可达性 JavaScript 中内存管理的主要概念是可达性。 简单地说…

宝塔Linux面板5.9版本升级新版失败解决方法

下载地址:宝塔Linux面板5.9升级教程 宝塔5.9版本升级最新版宝塔失败,可以参考这份详细教程(不断更新中) 安装要求: Python版本: 2.6/2.7(安装宝塔时会自动安装) 内存:1…

NX二次开发——测量距离(两个对象之间最近、最远距离)

一、概述 最近看到 一些文章比较有趣,所以做个记录,顺便写一下博客,附上全部代码,方便刚从事NX二次开发同僚的理解。本次主要模拟NX自带的测量工具中对两个实体对象进行测量距离。NX系统功能如下所示: 二、代码解析 主…

一图看懂git merge和git rebase的区别!!

一图看懂git merge和git rebase的区别!! Git 是一个非常流行的版本控制系统,它帮助开发者管理代码的不同版本。在 Git 中,merge 和 rebase 是两种常用的将不同分支的更改合并到一起的方法,但它们在处理方式和结果上有…

CP模型--Raft协议介绍

文章目录 前言一、Raft 是什么:二、Raft的工作原理:2.1 Raft 节点的3中状态:2.2 集群启动 leader 节点的选举:在这里插入图片描述2.3 数据的同步(日志复制):2.4 leader 重新选举:2.5…

目前公认的一些好用AI工具

ChatGPT:这是一个广泛推荐和使用的AI聊天机器人,能够进行高效的文本生成和对话管理。它在多个证据中被提及,显示其普遍性和实用性。 Midjourney:这是一款强大的AI绘画工具,特别适合创意写作和图像生成。它在多个来源中…

Web 安全漏洞之文件上传

目录 文件上传漏洞及危害 文件名 HTML 和 SVG 软链 服务器磁盘 防御方法 网络安全学习路线 (2024最新整理) 学习资料的推荐 1.视频教程 2.SRC技术文档&PDF书籍 3.大厂面试题 特别声明: 文件上传漏洞及危害 文件上传漏洞…

基于Idea搭建Android开发环境

文章目录 下载SDK ManagerAndroid SDK Platform-toolsAndroid SDK Build-toolsAndroid SDKAndroid SDK Extras IDEA设置创建TestApp导入Android Studio创建的项目 下载SDK Manager SDK Manager是Google提供的,专门用于下载/管理,安卓开发中需要用到的工…

CANopen总线_CANOpen开源协议栈

CANopen是自动化中使用的嵌入式系统的通信协议栈和设备配置文件规范。就OSI 模型而言,CANopen 实现了以上各层,包括网络层。 CANopen 标准由一个寻址方案、几个小型通信协议和一个由设备配置文件定义的应用层组成。通信协议支持网络管理、设备监控和节点…

java 解决跨域时遇到问题,怎么来做一个跨域环境

今天遇到一个问题: 关于#java#的问题:java 解决跨域时遇到问题:为什么跨域访问时配置的CorsFilter没有进入?直接访问请求地址时进入了配置的CorsFilter 由于没有实际的跨域环境,因此打算在本机建一个跨域环境&#xff…

庙算兵棋推演AI开发初探(4-调用AI模型)

前面讲了如何开展编写规则脚本型Agent(智能体)的方法,现在探究一下如何调用知识型(一般而言的训练出的模型)智能体的方法。 这次调用的是庙算平台的demo(网址见图) 下载了“知识强化学习型”…

【异常处理】(中北大学-程序设计基础(2))

目录 题目 源码 结果示例 题目 求一元二次方程式ax^2bxc0的实根&#xff0c;如果方程没有实根&#xff0c;则输入有关警告信息。要求&#xff1a;建立一元二次方程类&#xff0c;利用异常技术处理。 源码 #include <iostream> #include <cmath>using namespa…

力扣HOT100 - 763. 划分字母区间

解题思路&#xff1a; class Solution {public List<Integer> partitionLabels(String s) {int[] last new int[26];int len s.length();for (int i 0; i < len; i) {last[s.charAt(i) - a] i;//记录字母最远的下标}List<Integer> partition new ArrayList…

java spring boot动态数据库获得配置信息连接多数据源(数据库)

数据库 数据库文件和代码文件 https://download.csdn.net/download/qq_34631220/89304173 链接&#xff1a;https://pan.baidu.com/s/1xoh6xiSRx4nW_gKvR1QPjg 提取码&#xff1a;i7b7 –来自百度网盘超级会员V5的分享 文章位置 添加链接描述 说明&#xff1a;事务只能单库…

学习软考----数据库系统工程师32

NoSQL非关系型数据库 CAP理论和BASE特性 关系型数据库主要使用ACID理论 各种NoSQL数据 库的分类与特点