python configparser操作配置文件

news/2024/9/12 23:08:04/文章来源:https://www.cnblogs.com/lanjianhua/p/18373240

一、configparser概述

configparser 是 Pyhton 标准库中用来解析配置文件的模块;Python2.x 中名为 ConfigParser,3.x 已改名为configParser

二、配置文件的格式

常见的配置文件后缀:.ini.conf等,主要结构为包括以下的文本信息:

  1. sections(段)
  2. keys(properties\键)
  3. values(值)

格式如下:

[section]
key1=value1
key2=value2

配置文件示例 db_config.ini:

[oracle]
host = localhost
user = oracle_user
passwd = 123456
db = ora_db[mysql]
host = localhost
user = root
passwd = 123456
db = testdb[postgresql]
host = localhost
user = test
passwd = 123456
db = pgsql_db

三、读取文件内容

#coding=utf-8
import configparserconf = configparser.ConfigParser()  # 初始化实例
conf.read('db_config.ini')   # 加载读取配置文件# 获取所有 sections 名称
sections = conf.sections()  # list: ['oracle', 'mysql', 'postgresql']# 获取指定 section 的 keys
option = conf.options("mysql")  # list: ['host', 'user', 'passwd', 'db']# 获取 指定 section 指定 key 的 value 值
value = conf.get('logoninfo', 'addr') # str: testdb# 获取指定 section 的 keys & values
item = conf.items('mysql')  # list: [('host', 'localhost'), ('user', 'root'), ('passwd', '123456'), ('db', 'testdb')]print('mysql' in conf)  # 检查section是否存在
print("db" in conf["mysql"]) # 检查section中的key是否存在

四、写入配置文件

import configparser                     # 引入模块conf = configparser.ConfigParser()    #实例化一个对象conf['sqlserver'] = {'host': '127.0.0.1','port': '1433','user': 'root','password': '123456','db': 'my_db'
}conf.set('mysql', 'port', '3306')  # 添加一个sectiond 的key=value配置项
conf.set('oracle', 'host', '192.168.1.5')  # 修改一个配置项
conf.remove_option("mysql", "db")  # 删除指定sectiond 的key=value配置项
config.remove_section("postgresql")  # 删除指定sectiondwith open('db_config.ini', 'w') as wf:conf.write(wf)# 重命名section
def rename_section(config, old_section, new_section):items = config.items(old_section)print(items)if not config.has_section(new_section):config.add_section(new_section)# 将原始 section 的内容写入新的 sectionfor key, value in items:config.set(new_section, key, value)config.remove_section(old_section)with open('db_config.ini', 'w') as wf:conf.write(wf)# 调用重命名方法
rename_section(conf, old_section='mysql', new_section='sqlite')

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

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

相关文章

LLM 推理 服务

目录vLLMPagedAttention:解决内存瓶颈vLLM 的安装与使用 vLLM 加州大学伯克利分校的研究者开源了一个项目 vLLM,该项目主要用于快速 LLM 推理和服务。 vLLM 的核心是 PagedAttention,这是一种新颖的注意力算法,它将在操作系统的虚拟内存中分页的经典思想引入到 LLM 服务中。…

批量图像识别的快速遍历技巧

本周我们来介绍一下如何快速地批量遍历图片列表找到图片对应的位置或对应关系,也很感谢Q群2群lincoln同学的分享,感兴趣的同学可以戳推文详细阅读~此文章来源于项目官方公众号:“AirtestProject” 版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途一、前…

系统缓存可以删吗,删除系统缓存的方法有哪些

系统缓存是可以清理的,这些文件在长时间积累后可能会占用大量的磁盘空间,甚至影响电脑的性能。以下是一些清理C盘缓存的方法: 一、清理系统缓存 1.使用磁盘清理工具: 打开“此电脑”,右键点击C盘,选择“属性”。在“常规”选项卡中,点击“磁盘清理”。 系统将扫描C盘上的…

关于电脑晚上自动关机的问题,系统win11

前提:由于工作需要,有时需电脑在晚上仍能保持运行,但目前突然出现电脑晚上自动关机的情况,故需寻找解决方法。 解决方案:原文地址 方法:本次主要采取原文中所提及的方法二。 step1:搜索设备管理器step2:找到系统设备step3:在系统设备中找到Intel(R) Management Engine…

Vue 之混入(mixin)详细介绍

混入(mixin)提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项(如data、methods、mounted、filters等等)。 一、注册使用 1、在main.js中全局配置import mixin from ./mixinsVue.mixin(mixin)2、组件中配置 在日常的开发中,我…

Goby 漏洞发布|泛微 e-cology v10 appThirdLogin 权限绕过漏洞【漏洞复现】

漏洞名称:泛微 e-cology v10 appThirdLogin 权限绕过漏洞 English Name:Weaver e-cology v10 appThirdLogin Permission Bypass Vulnerability CVSS core: 7.5 漏洞描述: 泛微新一代数字化运营构建平台E10,是基于原eteams平台之上全新研发,同时融合了原E9产品的所有功能,…

[VS Code扩展]写一个代码片段管理插件(二):功能实现

@目录创建和插入代码片段代码片段列表代码片段预览代码片段编辑自定义映射默认映射自动完成项目地址 创建和插入代码片段 VS Code扩展提供了数据存储,其中globalState是使用全局存储的Key-Value方式来保存用户状态,支持在不同计算机上保留某些用户状态,详情请参考官方文档 若…

DLAFormer:微软提出多任务统一的端到端文本分析Transformer模型 | ICDAR 2024

论文提出新颖的基于Transformer的端到端方法DLAFormer,在统一的模型中集成多个文档布局分析任务,包括图形页面对象检测、文本区域检测、逻辑角色分类和阅读顺序预测。为了实现这一目标,将各种DLA子任务视为关系预测问题并提出了统一标签空间方法,使得统一关系预测模块能够有…

MySql Excel 数据导入

mysql工具:Navicat Premium 15 导入文件:file_Excel.xlsx 1.选择要导入到的表,右键选择导入向导,先择excel, 2.选择导入的数据文件,勾选excel的表名 3.设置字段选项,通配符 4.选择目标表,也可以自动新建表 5.字段对应关系展示,不匹配的会跳过 6.导入模式,追加或覆盖,…

Debian12+openresty1.25.3.2 部署 markdown在线编辑器 Editor.md

openresty的下载安装步骤参考: http://openresty.org/cn/linux-packages.html#debian 安装完成后:conf目录: /etc/openresty -> /usr/local/openresty/nginx/conf/html目录: /usr/local/openresty/nginx/htmlEditor.md 部署: cd /usr/local/openresty/nginx/htmlgit cl…

SLAB:华为开源,通过线性注意力和PRepBN提升Transformer效率 | ICML 2024

论文提出了包括渐进重参数化批归一化和简化线性注意力在内的新策略,以获取高效的Transformer架构。在训练过程中逐步将LayerNorm替换为重参数化批归一化,以实现无损准确率,同时在推理阶段利用BatchNorm的高效优势。此外,论文设计了一种简化的线性注意力机制,其在计算成本较…

神了!两个开源的高仿外卖项目!

大家好,我是 Java陈序员。 今天,给大家推荐两个高仿的外卖项目!关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。高仿饿了么 项目简介 vue2-elm —— 一个基于 Vue2 + Vuex 构建具有 45 个页面的高仿饿了么项目,涉及注册、登…