Python configparser模块使用教程

news2025/1/16 15:52:33

文章目录

  • .ini 拓展名文件简介
  • .ini 文件格式
    • 1. 节
    • 2. 参数
    • 3. 注解
  • configparser 模块简介
  • configparser 模块的初始化和读取
  • 获取 ini 中所有 section
  • 获取 section 下的 key
  • 获取 section 下的 value
  • 获取指点section的所用配置信息
  • 修改某个key,如果不存在则会出创建
  • 检查 section 或 key 是否存在
  • 添加section 和 key
  • 删除 section 和 key
  • 保存修改

.ini 拓展名文件简介

.ini 文件是Initialization File的缩写,即初始化文件,是windows的系统配置文件所采用的存储格式,.ini文件是纯文本格式,所以可以用任何纯文本编辑器来进行编辑其内容。

.ini 文件格式

.ini文件由节、键、值组成。

1. 节

节名来区分不同用途的参数区。
[section]

2. 参数

(键=值)
name=value

3. 注解

注解使用分号表示(;)。
在分号后面的文字,直到该行结尾都全部为注解。

; project config

configparser 模块简介

configparser 模块是用来读取或设置配置文件的包。

configparser 为内置模块,无需再下载

configparser 模块的初始化和读取

在这里插入图片描述
在读取 .ini 文件前 configparser 模块进行必须要先进行初始化

import configparser
config = configparser.ConfigParser()  #实例化 config 对象
config.read("config.ini", encoding="utf-8")  #encoding 为可选参数

获取 ini 中所有 section

使用 sections 方法以列表的方式返回 .ini 文件中所有

import configparser
config = configparser.ConfigParser()  #实例化 config 对象
config.read("config.ini", encoding="utf-8")  #encoding 为可选参数

print(config.sections())

在这里插入图片描述

获取 section 下的 key

使用 options 方法以列表的方式返回指定 section 下所有 key

import configparser

config = configparser.ConfigParser()

config.read("config.ini")

section = config.sections()[0] # 获取 第一个 section的名字

print(config.options(section))

获取 section 下的 value

使用 get(section, key) 方法获取指定 sectionkey 的值

import configparser

config = configparser.ConfigParser()

config.read("config.ini")

section = config.sections()[0] # 获取 第一个 section的名字

key = config.options(section)[0] # 获取 第一个 section 下的第一个 key

print(config.get(section, key)) # 获取 section 下 key 的值

获取指点section的所用配置信息

使用 items(section) 方法以列表的方式获取指定 section 的配置信息

import configparser

config = configparser.ConfigParser()

config.read("config.ini")

section = config.sections()[0]

print(config.items(section))

在这里插入图片描述

修改某个key,如果不存在则会出创建

使用 set(section, key, value) 方法修改指定 section 下的 key 的值
修改后需要使用 write(open(filepath, "w") 保存修改

import configparser

config = configparser.ConfigParser()

config.read("config.ini")

section = config.sections()[0]

print(config.items(section))

key = config.options(section)[0] # 获取 第一个 section 下的第一个 key

config.set(section, key, "9")  #修改key的值为9
config.write(open("config.ini", "w"))   #修改需要使用 write 保存修改

在这里插入图片描述

检查 section 或 key 是否存在

使用 has_section 方法检查对应的 section 是否存在;
使用 has_option(section, key) 方法检查对应的 key 是否存在;

config.has_section(section) # 判断是否存在section
config.has_option(section, key) # 判断 section 下是否存在 key

添加section 和 key

使用 add_section(section) 方法添加 section
添加 key 同样使用 set(section, key, value) 方法

config.add_section(section)

删除 section 和 key

使用 remove_section(section) 方法删除 section
使用 remove_option(section, key) 方法删除 key

保存修改

使用 write(open(filepath, "w") 保存修改

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

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

相关文章

CUDA编程入门系列(五) Grid,Block,Wrap,Thread

一、CUDA程序层次结构 GPU上很多并行化的轻量级线程。 kernel在device上执行时实际上时启动很多线程,一个kernel所启动的所有线程称为一个网格grid。 同一个网格上的线程共享相同的全局内存空间,grid时线程结构的第一个层次。 网格又可以分为很多线程块b…

设置hadoop+安装java环境

上一篇 http://t.csdnimg.cn/K3MFS 基本操作 接着上一篇 先导入之前导出的虚拟机 选择导出到对应的文件夹中 这里修改一下保存虚拟机的位置(当然你默认也可以) 改一个名字 新建一个share文件夹用来存放共享软件的文件夹 在虚拟机的设置中找到这个设置…

计算机算法分析与设计(13)---贪心算法(多机调度问题)

文章目录 一、问题概述1.1 思路分析1.2 实例分析 二、代码编写 一、问题概述 1.1 思路分析 1. 设有 n n n 个独立的作业 1 , 2 , … , n {1, 2, …, n} 1,2,…,n,由 m m m 台相同的机器 M 1 , M 2 , … , M m {M_1, M_2, …, M_m} M1​,M2​,…,Mm​ 进行加工处…

使用 VS Code 作为 VC++ 6.0 的编辑器

使用 VS Code 作为 VC 6.0 的编辑器 由于一些众所周知的原因,我们不得不使用经典(过时)的比我们年龄还大的已有 25 年历史的 VC 6.0 来学习 C 语言。而对于现在来说,这个经典的 IDE 过于简陋,并且早已不兼容新的操作系…

搜维尔科技:“虚实结合” 体验式人机验证技术,助力通用汽车开启研发新篇章

虚拟现实(VR)技术为制造业带来了巨大的可能性。它使工程师能够以真实世界的比例完整体验他们的设计,就像身临其境一样。通过在VR中模拟制造过程,可以发现并解决许多问题,从而避免在实际生产中投入大量资源后才发现问题。VR模拟使不同团队之间的沟通和协作变得比较直观和高效。这…

前端视频无法自动播放的问题,基于Chrome浏览器的自动播放策略原理,详细解释加了autoplay属性之后视频仍然不能自动播放的问题,并提供了二种主流的解决方法

目录 一,什么是Chrome浏览器的自动播放策略?(原理讲解,懂了原理解决问题就会非常简单) 1.生活场景中的案例 2.Chrome自动播放策略 3.什么是媒体参与度 二: 案例演示(无法播放的情况&#x…

chatglm2微调—ptuning

Freeze: 即参数冻结,对原始模型部分参数进行冻结操作,仅训练部分参数,以达到在单卡或不进行TP或PP操作,就可以对大模型进行训练。 P-Tuning: 在输入的embedding层前,将prompt转换为可学习的额外一层embedding层. P-T…

算水质TDS加温度补偿

先上图,就图里这款水质检测,用树莓派3/4的话,要配个温度检测作为温度校正,以及一个adc 元器件。我选ds18b20和ads1115。 再把模拟数据计算过程放一下: 温度检测元器件在农历钟那里提过,就是同款。此处先测个…

网页构造与源代码

下载google浏览器 设置打开特定网址:www.baidu.com 查看网页或元素源代码 网页右键选择“检查”查看源代码 网页源代码 元素源代码

【Git】bad signature 0x00000000 index file corrupt. fatal: index file corrupt

问题描述 电脑写代码时蓝屏。重启后 git commit 出错。 error: bad signature 0x00000000 fatal: index file corrupt原因分析 当电脑发生蓝屏或异常关机时,Git 的索引文件可能损坏。 解决方案 删除损坏的索引文件。 rm -Force .git/index回退到上一个可用的版…

数据结构复盘——第七章:查找和匹配

文章目录 第一部分:折半查找1、查找的主要步骤2、折半查找的判定树 第一部分习题第二部分:分块查找第三部分:散列查找1、散列查找的常用术语2、常用的散列函数:3、处理冲突的方法:3.1 开放定址法3.2 拉链法(链接法、链…

【YOLO】语义分割和实例分割(四)

0 YOLO系列笔记 【YOLO】朴实无华的yolov5环境配置(一) 【YOLO】yolov5训练自己的数据集(二) 【YOLO】目标识别模型的导出和opencv部署(三) 1 前言 在之前的实践过程中,总结了如何使用YOLOv…

离线语音与IoT结合:智能家居发展新增长点

离线语音控制和物联网(IoT)相结合在家居中具有广泛的应用和许多优势。离线语音控制是指在设备在本地进行语音识别和处理,而不需要依赖云服务器进行处理。IoT是指借助网络,通过手机APP、小程序远程控制家居设备。 启英泰伦基于AI语…

一款.NET Core开源的基于Vue+ElementUI开发的博客系统 - StarBlog

前言 今天给大家推荐一款.NET Core开源的基于VueElementUI开发的博客系统 - StarBlog。该项目配套详细的文章教程,可以作为 .Net Core 入门项目学习。 官方项目介绍 StarBlog支持Markdown导入的博客。后端基于最新的.Net6和Asp.Net Core框架,遵循REST…

055:mapboxGL中加载geojson,导出为CSV格式文件

vue+mapbox 第055个 点击查看专栏目录 本示例介绍演示如何在vue+mapbox中加载geojson,导出为CSV格式文件。 通过一个插件,将geojson转化为csv,同时通过file-saver将文件下载下来。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果导出后的…

基于SSM的仓库管理系统设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

TypeScript深度剖析:TypeScript 中接口的理解?应用场景?

面试官:说说你对 TypeScript 中接口的理解?应用场景? 一、是什么 接口是一系列抽象方法的声明,是一些方法特征的集合,这些方法都应该是抽象的,需要由具体的类去实现,然后第三方就可以通过这组抽…

图像识别-人脸识别与疲劳检测 - python opencv 计算机竞赛

文章目录 0 前言1 课题背景2 Dlib人脸识别2.1 简介2.2 Dlib优点2.3 相关代码2.4 人脸数据库2.5 人脸录入加识别效果 3 疲劳检测算法3.1 眼睛检测算法3.3 点头检测算法 4 PyQt54.1 简介4.2相关界面代码 5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是…

VRRP基础

1.VRRP概述 VRRP( Virtual Router Redundancy Protocol,虚拟路由器冗余协议)既能够实现网关的备份,又能解决多个网关之间互相冲突的问题,从而提高网络可靠性。 通过把几台路由设备联合组成一台虚拟的“路由设备”&…

nodejs+vue 学生宿舍管理系统设计与实现

可将教师信息、宿管信息、学生信息、楼栋信息等输入到系统中。只有管理员才能录入相关的资料,按照提示,输入相应的资料,而“导入”则可以通过上传档案,导入成功后,相应的寝室就会相应的减少。在录入大楼的时候&#xf…