Python中configparser的使用

2023-11-18

1. configparser介绍

configparser是python自带的配置参数解析器。可以用于解析.ini文件中的配置参数。ini文件中由sections(节点)-key-value组成。

2. ini文件配置说明

[DEFAULT]
key1 = value1 

[section1] 
key1 = value1 
key2 : value2

[section2]
key1 = value1
key2 = value2
  • [DEFAULT]是特殊的节点,使用config.sections()的时候不会被输出。当调用其它节点的某key时:
    – 若其他节点中存在key,输出对应节点的key及value
    – 若其他节点中不存在key,DEFAULT中存在对应的key的话,输出DEFAULT中的key
  • [section1] 区分大小写,前后空格不会被处理,同一个配置文件中不允许重复。
  • key:不区分大小写,前后空格会被处理,同一个section中不允许重复,不可以跨。key和value可以使用 key = value 也可以使用 key : value

3. 读取配置示例

(1)config.ini

[DEFAULT]
port = 8080

[MySQL]
host = 172.xxx.xxx.xxx
port = 3306
user = root
password = ******
db = bgp_routing
charset = utf8

(2)读取配置文件config.read()

import configparser
from pathlib import Path

config_dir = r'./config.ini' # 配置文件地址
config = configparser.ConfigParser()
config.read(config_dir, encoding='utf-8')  # 从文件中读取配置信息

(3)获取配置文件中的key和value

config的key和value的获取有两种方式:

  • config.get()函数读取:默认返回str
  • 字典读取:默认返回str

注:这里无论是通过上述哪种方式获取value,返回的数据类型均为str。因此,如果需要其他类型(如端口需要int型),需要使用强制类型转化。

以下给出具体示例:

# 获取所有的节点sections
print(config.sections())  # ['MySQL']

port1 = config['MySQL']['port'] 
print(port1)  # 3306
print(type(port1))  # <class 'str'>

port2 = config.get('MySQL', 'port')
print(port2)  # 3306
print(type(port2))  # <class 'str'>

以数据库连接为例,介绍将config返回的str类型转化为int类型:

import pymysql

conn = pymysql.connect(
    host=config.get('MySQL', 'host'),
    port=int(config.get('MySQL', 'port')),  # 将port转化为int型!!!
    user=config.get('MySQL', 'user'),
    password=config.get('MySQL', 'password'),
    db=configg.get('MySQL', 'db'),
    charset=config.get('MySQL', 'charset')
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python中configparser的使用 的相关文章

  • Python BigQuery 存储。并行读取多个流

    我有以下玩具代码 import pandas as pd from google cloud import bigquery storage v1beta1 import os import google auth os environ G
  • InterfaceError:连接已关闭(使用 django + celery + Scrapy)

    当我在 Celery 任务中使用 Scrapy 解析函数 有时可能需要 10 分钟 时 我得到了这个信息 我用 姜戈 1 6 5 django celery 3 1 16 芹菜 3 1 16 psycopg2 2 5 5 我也使用了psyc
  • Python PAM 模块的安全问题?

    我有兴趣编写一个 PAM 模块 该模块将利用流行的 Unix 登录身份验证机制 我过去的大部分编程经验都是使用 Python 进行的 并且我正在交互的系统已经有一个 Python API 我用谷歌搜索发现pam python http pa
  • 如何在android上的python kivy中关闭应用程序后使服务继续工作

    我希望我的服务在关闭应用程序后继续工作 但我做不到 我听说我应该使用startForeground 但如何在Python中做到这一点呢 应用程序代码 from kivy app import App from kivy uix floatl
  • 如何打印没有类型的defaultdict变量?

    在下面的代码中 from collections import defaultdict confusion proba dict defaultdict float for i in xrange 10 confusion proba di
  • Python 多处理示例不起作用

    我正在尝试学习如何使用multiprocessing但我无法让它发挥作用 这是代码文档 http docs python org 2 library multiprocessing html from multiprocessing imp
  • keras加载模型错误尝试将包含17层的权重文件加载到0层的模型中

    我目前正在使用 keras 开发 vgg16 模型 我用我的一些图层微调 vgg 模型 拟合我的模型 训练 后 我保存我的模型model save name h5 可以毫无问题地保存 但是 当我尝试使用以下命令重新加载模型时load mod
  • feedparser 在脚本运行期间失败,但无法在交互式 python 控制台中重现

    当我运行 eclipse 或在 iPython 中运行脚本时 它失败了 ascii codec can t decode byte 0xe2 in position 32 ordinal not in range 128 我不知道为什么 但
  • 在pyyaml中表示具有相同基类的不同类的实例

    我有一些单元测试集 希望将每个测试运行的结果存储为 YAML 文件以供进一步分析 YAML 格式的转储数据在几个方面满足我的需求 但测试属于不同的套装 结果有不同的父类 这是我所拥有的示例 gt gt gt rz shorthand for
  • Python:字符串不会转换为浮点数[重复]

    这个问题在这里已经有答案了 我几个小时前写了这个程序 while True print What would you like me to double line raw input gt if line done break else f
  • Pandas Dataframe 中 bool 值的条件前向填充

    问题 如何转发 fill boolTruepandas 数据框中的值 如果是当天的第一个条目 True 到一天结束时 请参阅以下示例和所需的输出 Data import pandas as pd import numpy as np df
  • Python:尝试检查有效的电话号码

    我正在尝试编写一个接受以下格式的电话号码的程序XXX XXX XXXX并将条目中的任何字母翻译为其相应的数字 现在我有了这个 如果启动不正确 它将允许您重新输入正确的数字 然后它会翻译输入的原始数字 我该如何解决 def main phon
  • Python - 按月对日期进行分组

    这是一个简单的问题 起初我认为很简单而忽略了它 一个小时过去了 我不太确定 所以 我有一个Python列表datetime对象 我想用图表来表示它们 x 值是年份和月份 y 值是此列表中本月发生的日期对象的数量 也许一个例子可以更好地证明这
  • 通过数据框与函数进行交互

    如果我有这样的日期框架 氮 EG 00 04 NEG 04 08 NEG 08 12 NEG 12 16 NEG 16 20 NEG 20 24 datum von 2017 10 12 21 69 15 36 0 87 1 42 0 76
  • Nuitka 未使用 nuitka --recurse-all hello.py [错误] 编译 exe

    我正在尝试通过 nuitka 创建一个简单的 exe 这样我就可以在我的笔记本电脑上运行它 而无需安装 Python 我在 Windows 10 上并使用 Anaconda Python 3 我输入 nuitka recurse all h
  • VSCode:调试配置中的 Python 路径无效

    对 Python 和 VSCode 以及 stackoverflow 非常陌生 直到最近 我已经使用了大约 3 个月 一切都很好 当尝试在调试器中运行任何基本的 Python 程序时 弹出窗口The Python path in your
  • 用于运行可执行文件的python多线程进程

    我正在尝试将一个在 Windows 上运行可执行文件并管理文本输出文件的 python 脚本升级到使用多线程进程的版本 以便我可以利用多个核心 我有四个独立版本的可执行文件 每个线程都知道要访问它们 这部分工作正常 我遇到问题的地方是当它们
  • 在 Python 类中动态定义实例字段

    我是 Python 新手 主要从事 Java 编程 我目前正在思考Python中的类是如何实例化的 我明白那个 init 就像Java中的构造函数 然而 有时 python 类没有 init 方法 在这种情况下我假设有一个默认构造函数 就像
  • Python - 字典和列表相交

    给定以下数据结构 找出这两种数据结构共有的交集键的最有效方法是什么 dict1 2A 3A 4B list1 2A 4B Expected output 2A 4B 如果这也能产生更快的输出 我可以将列表 不是 dict1 组织到任何其他数
  • Pandas 与 Numpy 数据帧

    看这几行代码 df2 df copy df2 1 df 1 df 1 values 1 df2 ix 0 0 我们的教练说我们需要使用 values属性来访问底层的 numpy 数组 否则我们的代码将无法工作 我知道 pandas Data

随机推荐

  • PLSQL Developer 12 汉化包下载

    下载地址 https www allroundautomations com plsqldevlang 120 index html 转载于 https www cnblogs com mayblog p 10937552 html
  • ce工具的服务器文件,CE工具怎么找游戏服务器数据

    CE工具怎么找游戏服务器数据 内容精选 换一换 模型准备以昇腾模型压缩工具的安装用户将需要量化的TensorFlow模型上传到Linux服务器任意目录下 本章节以sample包中自带的mobilenet v2 pb网络模型为例进行说明 用户
  • 远程控制工具ToDesk测评

    目录 一 远程办公时代 1 前言 2 远程办公时代 3 ToDesk主要适用人群 4 主要适用领域 二 下载与安装 1 下载地址 2 安装 3 主页焕然一新 支持自定义密码 4 连接远程服务器 三 简单操作测评 1 多开软件测评 2 上传文
  • Linux系统优势

    熟悉电脑的人都知道 Linux 相比较于 Windows 有着众多的优势 所以现在越来越多的电脑用户开始使用 Linux 进行办公 学习 总体来讲 Linux 的优势主要有以下几个方面 一 开源 免费 众所周知 不管是微软的Windows
  • html嵌套html的两种方法( iframe,load)

    1 使用 iframe 标签 src 你要导入的html scrolling 是否开启滚屏 frameborder 是否设置边框 style 设置样式 2 使用jQ的load page1 load publish html 获取某个div的
  • 程序员4月书讯:Angular来了!

    3月书讯中奖名单 小棒棒 学习敏捷 构建高效团队 镇屌的技术之路 学习敏捷 构建高效团队 阿基米东 Scratch少儿趣味编程2 民团司令 追踪引力波 JOHNEW 算法图解 中奖通知由CSDN官方发布站内消息 请关注消息通知 好书推荐 在
  • 2023年第2季社区Task挑战赛升级新玩法,等你来战!

    第1季都有哪些有趣的作品 在大家的共建下 FISCO BCOS开源生态不断丰富完善 涌现了众多实用技术教程和代码 基于数字身份凭证的业务逻辑设计 贡献了发放数字身份凭证的参考实现 提供企业碳排放 慈善公益等智能合约库业务场景案例 体验最新发
  • Eureka,拿捏日千万级访问量妥妥的!

    V xin ruyuanhadeng获得600 页原创精品文章汇总PDF 问题起源 Spring Cloud架构体系中 Eureka是一个至关重要的组件 它扮演着微服务注册中心的角色 所有的服务注册与服务发现 都是依赖Eureka的 不少初
  • 如何解决:ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。

    python编写mqtt服务时候出现如下问题 ConnectionRefusedError WinError 10061 由于目标计算机积极拒绝 无法连接 尝试了网上的很多方法都无法解决 发现主要问题在于broker没有打开 可以下载emq
  • 使用CDN有什么好处?

    现如今 在这个移动互联网时代 越来越多的人使用手机观看视频 丰富自己的娱乐生活 可是 大家在追剧的时候 有没有想过一个问题 为什么以前观看视频时 那么卡顿 现在看视频却这么流畅呢 其实 这是互联网视频内容提供商使用了摩杜云CDN 解决巨大流
  • 操作系统可以做服务器操作系统,可以做服务器操作系统

    可以做服务器操作系统 内容精选 换一换 Atlas 800 训练服务器 型号 9010 安装上架 服务器基础参数配置 安装操作系统等操作请参见 Atlas 800 训练服务器 用户指南 型号9010 Atlas 800 训练服务器 型号 9
  • 【windows11】python安装教程(超简易·免配置)

    废话不多说 直接上流程 一 下载python 认准官方网址 http www python org 由于是国外平台网站 网页加载可能有些慢 可以耐心等待 鼠标光标移至 Downloads 处 点击 All releases 若想体验最新版
  • Libvirt安装

    目录 建立在上一章的基础上 一 Libvirt安装与配置 1 修改 etc selinux config 文件 2 配置yum源为阿里源 3 清理yum源 4 重新生成新缓存 5 检查系统是否安装 libvirt qemu 6 检查kvm模
  • 【华为OD统一考试A卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • Linux磁盘管理

    lsblk 使用lsblk命令可以以tree的形式展示所有设备的信息 lsblk命令的英文是 list block 即用于列出所有可用块设备的信息 而且还能显示他们之间的依赖关系 但是它不会列出RAM盘的信息 使用者权限 所有用户 语法格式
  • HCNP路由交换笔记

    路由基础 路由 在报文转发的过程中沿途的网络设备收到该报文后 会根据其携带的目的IP地址来判断如何转发这个报文 最终将报文从恰当的接口转发出去 当一台路由器收到一个IP报文后 会在自己的路由器中执行路由查询 寻找匹配报文的目的IP地址的路由
  • 如何更改vue项目中的小图标

    1 先将icon图标放入static文件夹中 2 然后在index html文件中引入 3 保存后刷新浏览器就可以显示图标了
  • 如何开启esxi主机的ssh远程连接

    环境 esxi主机 说明 esxi主机默认ssh是不开启的 需要人工手动启动 也可以设置同esxi主机一起开机启动 1 找到esxi主机 点击 配置 那里 再点击右边的属性 如图所示 2 在 服务属性 界面中 可以看到很多服务 找到 SSH
  • navicat mysql data transfer_Navicat 导出导入数据库的实现方法

    描述 把mysql数据库中的一个数据库导出 备份 或者传输给别人 导出 使用Navicat连接到mysql 然后选中你要导出的数据库 右键 选择转储SQL文件 命名为数据名 sql 保存到本地中即可 如下图 选择转储SQL文件 保存到本地
  • Python中configparser的使用

    1 configparser介绍 configparser是python自带的配置参数解析器 可以用于解析 ini文件中的配置参数 ini文件中由sections 节点 key value组成 2 ini文件配置说明 DEFAULT key