Python configparser模块应用过程解析

时间:2021-05-22

一、configparser模块是什么

可以用来操作后缀为 .ini 的配置文件;

python标准库(就是python自带的意思,无需安装)

二、configparser模块基本使用

2.1 读取 ini 配置文件

#存在 config.ini 配置文件,内容如下:[DEFAULT]excel_path = ../test_cases/case_data.xlsxlog_path = ../logs/test.loglog_level = 1[email]user_name = 32@qq.compassword = 123456

使用configparser模块读取配置文件

import configparser#创建配置文件对象conf = configparser.ConfigParser()#读取配置文件conf.read('config.ini', encoding="utf-8")#列表方式返回配置文件所有的sectionprint( conf.sections() ) #结果:['default', 'email']#列表方式返回配置文件email 这个section下的所有键名称print( conf.options('email') ) #结果:['user_name', 'password']#以[(),()]格式返回 email 这个section下的所有键值对print( conf.items('email') ) #结果:[('user_name', '32@qq.com'), ('password', '123456')]#使用get方法获取配置文件具体的值,get方法:参数1-->section(节) 参数2-->key(键名)value = conf.get('default', 'excel_path')print(value)

2.2 写入 ini 配置文件(字典形式)

import configparser#创建配置文件对象conf = configparser.ConfigParser()#'DEFAULT'为section的名称,值中的字典为section下的键值对conf["DEFAULT"] = {'excel_path' : '../test_cases/case_data.xlsx' , 'log_path' : '../logs/test.log'}conf["email"] = {'user_name':'32@qq.com','password':'123456'}#把设置的conf对象内容写入config.ini文件with open('config.ini', 'w') as configfile: conf.write(configfile)

2.3 写入 ini 配置文件(方法形式)

import configparser#创建配置文件对象conf = configparser.ConfigParser()#读取配置文件conf.read('config.ini', encoding="utf-8")#在conf对象中新增sectionconf.add_section('webserver')#在section对象中新增键值对conf.set('webserver','ip','127.0.0.1')conf.set('webserver','port','80')#修改'DEFAULT'中键为'log_path'的值,如没有该键,则新建conf.set('DEFAULT','log_path','test.log')#删除指定sectionconf.remove_section('email')#删除指定键值对conf.remove_option('DEFAULT','excel_path')#写入config.ini文件with open('config.ini', 'w') as f: conf.write(f)

上述3个例子基本阐述了configparser模块的核心功能项;

  • 例1中,encoding="utf-8"为了放置读取的适合中文乱码;
  • 例2你可以理解为在字典中新增数据,键:配置文件的section,字符串格式;值:section的键值对,字典格式;
  • 例3中在使用add_section方法时,如果配置文件存在section,则会报错;而set方法在使用时,有则修改,无则新建。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章