Python中ConfigParser模块示例详解

 更新时间:2023年01月15日 10:24:02   作者:牛油菠蘿包  
有些时候在项目中,使用配置文件来配置一些灵活的参数是比较常见的事,因为这会使得代码的维护变得更方便,而ini配置文件是比较常用的一种,今天介绍用ConfigParser模块来解析ini配置文件,感兴趣的朋友一起看看吧

1. 简介

有些时候在项目中,使用配置文件来配置一些灵活的参数是比较常见的事,因为这会使得代码的维护变得更方便。而ini配置文件是比较常用的一种,今天介绍用ConfigParser模块来解析ini配置文件。

2. ini配置文件格式

# 这是注释
; 这也是注释
[section1]
name = wang
age = 18
heigth = 180

[section2]
name = python
age = 19

3. 读取ini文件

configparser模块为Python自带模块不需要单独安装,但要注意,在Python3中的导入方式与Python2的有点小区别

# python2
import ConfigParser

# python3
import configparser

3.1 初始化对象并读取文件

import configparser
import os
# 创建对象
config = configparser.ConfigParser()
dirPath = os.path.dirname(os.path.realpath(__file__))
inipath = os.path.join(dirPath,'test.ini')
# 读取配置文件,如果配置文件不存在则创建
config.read(inipath,encoding='utf-8')

3.2 获取并打印所有节点名称

secs = config.sections()
print(secs)

输出结果:

['section1', 'section2']

3.3 获取指定节点的所有key

option = config.options('section1')
print(option)

输出结果:

['name', 'age', 'heigth']

3.4 获取指定节点的键值对

item_list = config.items('section2')
print(item_list)

输出结果:

[('name', 'python'), ('age', '19')]

3.5 获取指定节点的指定key的value

val = config.get('section1','age')
print('section1的age值为:',val)

输出结果:

section1的age值为: 18

3.6 将获取到值转换为int\bool\浮点型

Attributes = config.getint('section2','age')
print(type(config.get('section2','age')))
print(type(Attributes))

# Attributes2 = config.getboolean('section2','age')
# Attributes3 = config.getfloat('section2','age')

输出结果:

<class 'str'>
<class 'int'>

3.7 检查section或option是否存在,返回bool值

has_sec = config.has_section('section1')
print(has_sec)

has_opt = config.has_option('section1','name')
print(has_opt)

输出结果:

TrueTrue

3.8 添加一个section和option

if not config.has_section('node1'):
    config.add_section('node1')

# 不需判断key存不存在,如果key不存在则新增,若已存在,则修改value
config.set('section1','weight','100')  

# 将添加的节点node1写入配置文件
config.write(open(inipath,'w'))
print(config.sections())
print(config.options('section1'))

输出结果:

['section1', 'section2', 'node1']
[('name', 'wang'), ('age', '18'), ('heigth', '180'), ('weight', '100')]

3.9 删除section和option

# 删除option
print('删除前的option:',config.items('node1'))
config.remove_option('node1','dd')
# 将删除节点node1后的内容写回配置文件
config.write(open(inipath,'w'))
print('删除后的option:',config.items('node1'))

输出结果:

删除前的option: [('dd', 'ab')]
删除后的option: []

# 删除section
print('删除前的section: ',config.sections())
config.remove_section('node1')
config.write(open(inipath,'w'))
print('删除后的section: ',config.sections())

输出结果:

删除前的section:  ['section1', 'section2', 'node1']
删除后的section:  ['section1', 'section2']

3.10 写入方式

1、write写入有两种方式,一种是删除源文件内容,重新写入:w

config.write(open(inipath,'w'))

另一种是在原文基础上继续写入内容,追加模式写入:a

config.write(open(inipath,'a'))

需要注意的是,config.read(inipath,encoding='utf-8')只是将文件内容读取到内存中,即使经过一系列的增删改操作,只有执行了以上的写入代码后,操作过的内容才会被写回文件,才能生效。

到此这篇关于Python中ConfigParser模块详谈的文章就介绍到这了,更多相关Python中ConfigParser模块内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python yield迭代器详解

    python yield迭代器详解

    带有yield的函数在Python中被称之为generator(生成器),也就是说,当你调用这个函数的时候,函数内部的代码并不立即执行 ,这个函数只是返回一个生成器
    2022-11-11
  • 教你用 Python 发送告警通知到微信的操作过程

    教你用 Python 发送告警通知到微信的操作过程

    大家都知道常见的告警方式有:邮件,电话,短信,微信,今天通过本文给大家介绍下Python 发送告警通知到微信的操作过程,感兴趣的朋友一起看看吧
    2022-01-01
  • Python 实例进阶之预测房价走势

    Python 实例进阶之预测房价走势

    买房应该是大多数都会要面临的一个选择,当前经济和政策背景下,未来房价会涨还是跌?这是很多人都关心的一个话题。今天分享的这篇文章,以波士顿的房地产市场为例,根据低收入人群比例、老师学生数量等特征,利用 Python 进行了预测,给大家做一个参考
    2021-11-11
  • 详解TensorFlow2实现线性回归

    详解TensorFlow2实现线性回归

    这篇文章主要介绍了TensorFlow2实现线性回归的详细解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • 自己编程中遇到的Python错误和解决方法汇总整理

    自己编程中遇到的Python错误和解决方法汇总整理

    这篇文章主要介绍了自己编程中遇到的Python错误和解决方法汇总整理,本文收集整理了较多的案例,需要的朋友可以参考下
    2015-06-06
  • python散点图双轴设置坐标轴刻度的实现

    python散点图双轴设置坐标轴刻度的实现

    散点图是一种常用的图表类型,可以用来展示两个变量之间的关系,本文主要介绍了python散点图双轴设置坐标轴刻度的实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • python实现对象列表根据某个属性排序的方法详解

    python实现对象列表根据某个属性排序的方法详解

    这篇文章主要介绍了python实现对象列表根据某个属性排序的方法,结合具体实例形式详细分析了Python对象列表遍历、排序的两种常见操作技巧,需要的朋友可以参考下
    2019-06-06
  • 使用rst2pdf实现将sphinx生成PDF

    使用rst2pdf实现将sphinx生成PDF

    这篇文章主要介绍了使用rst2pdf实现将sphinx生成PDF的相关资料,以及使用过程用遇到的错误的处理方法,非常的全面,需要的朋友可以参考下
    2016-06-06
  • Pandas常用的数据结构和常用的数据分析技术

    Pandas常用的数据结构和常用的数据分析技术

    Pandas是Python中用于数据处理和分析的强大库,其最常用的数据结构是Series和DataFrame。Series类似于一维数组,可以表示一列数据;DataFrame类似于二维表格,可以表示多列数据
    2023-04-04
  • Python请求库发送HTTP POST请求的示例代码

    Python请求库发送HTTP POST请求的示例代码

    这段代码使用了Python的requests库来发送HTTP POST请求,向本地服务器的API发送数据,并处理响应,一步步解释这个代码
    2024-08-08

最新评论