如何利用python 读取配置文件


Posted in Python onJanuary 06, 2021

引言

        在编写接口自动化测试脚本时,有时我们需要在代码中定义变量并给变量固定的赋值。为了统一管理和操作这些固定的变量,咱们一般会将这些固定的变量以一定规则配置到指定的配置文件中,后续需要用到这些变量和变量值时通过代码读取或者写入数据到该配置文件即可,使用配置文件的好处就是不用在程序员写死,可以使程序更灵活。因而对于python语言就封装了configparser模块,用来处理指定格式的文件(文件名称一般为xxx.ini),配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(section), 每个节可以有多个参数(键=值)。

        注:目前python3版本操作配置文件模块名称变更为configparser,原有的python2版本配置文件模块名称变更为ConfigParser

configparser模块功能介绍

 configparser模块主要封装提供了ConfigParser()类、RawConfigParser()类、SafeConfigParser()类等,如下图导入configparser模块,可以查看并使用模块下已经封装好的所有类

如何利用python 读取配置文件

在configparser模块中主要还是使用封装的ConfigParser()类提供的方法来操作配置文件,对配置文件进行数据读取和写入等。

具体的该模块python官网对其有完整的介绍:https://docs.python.org/3/library/configparser.html

配置文件的格式如下:

  • 中括号“[ ]”内包含的为section。
  • section 下面为类似于key-value 的配置内容,一般是用赋值符“=”分隔。

      示例:

如何利用python 读取配置文件

 读取配置文件及其常用读取指定数据方法

 ConfigParser()类提供了操作读取配置文件、读取指定配置文件中section、section下的所有key-value等方法,具体方法使用如下:

如何利用python 读取配置文件

 代码示例:

import configparser
 
cf = configparser.ConfigParser() # 实例化
 
# read(filename) 读取文件
filename = cf.read(r'G:\api_test\configfile.ini',encoding='utf-8')
 
# sections() 得到所有的section,以列表形式返回
sec = cf.sections()
print(sec)
 
# 得到section下的所有option
opt = cf.options("mysql")
print(opt)
 
# items 得到section的所有键值对
value = cf.items("mysql")
print(value)
print(dict(value)) # 转成字典类型
 
# get(section,option) 得到section中的option值,返回string/int类型的结果
mysql_host = cf.get("mysql","host")
mysql_password = cf.getint("mysql","port")
print(mysql_host,mysql_password)

运行以上代码输出如下:

如何利用python 读取配置文件

写入配置文件(增删改操作)及其提供的操作方法

 ConfigParser()类提供了写入修改配置文件数据等方法,具体方法使用如下:

如何利用python 读取配置文件

 在配置文件编辑如下信息:

如何利用python 读取配置文件

 编辑如下代码:

import configparser
 
conf = configparser.ConfigParser()
conf.read(r'G:\api_test\configfile.ini',encoding='utf-8')
 
conf.set("code", "code", "6666")  # 修改指定section 的option
conf.set("code", "age", "123")  # 增加指定section 的option
conf.has_section("code")
conf.has_option("code","age")
#conf.remove_section("test")
#conf.remove_option("test","haha")
if 'test' not in conf.sections():
    conf.add_section("test")  # 增加section
    conf.set("test", "haha", "123")  # 给新增的section 写入option
file = open(r'G:\api_test\configfile.ini', 'w',encoding='utf-8')
conf.write(file)
file.close()

运行结束后如下:

如何利用python 读取配置文件

 编辑修改配置文件记得关闭配置文件。

通过以上使用ConfigParser()类提供读写配置文件的相关方法,就可以比较方便的操作配置文件。but,以上向配置文件读取和写入数据到配置文件的代码,并没有进行封装。由于经常需要使用配置文件进行数据读取和写入,因此建议将操作配置文件读写的操作封装成公共的模块。如操作读取配置文件的数据的封装,配置文件内容如下:

如何利用python 读取配置文件

新建read_config.py文件,封装的读取配置文件的代码,实例如下:

import configparser
import os
 
class ReadConfig():
    def __init__(self, filepath=None):
 
        root_dir = os.path.dirname(os.path.abspath('.'))        # 获取项目主路径
        # print("打印",root_dir)
        configpath = os.path.join(root_dir, "configfile.ini")  # 拼接路径
        # print("得到的路径为",configpath)
        self.cf = configparser.RawConfigParser()
        self.cf.read(configpath,encoding='utf-8')
    def get_cookie(self, param):
        value = self.cf.get("cookie", param)
        return value
    def get_sheet(self,param):
        value = self.cf.get("sheet",param)
        return value
    def get_mysql(self,param):
        value = self.cf.get("mysql",param)
        return value
    def get_code(self,param):
        value = self.cf.get("code",param)
        return value

 这样封装成类后,后续其他模块需要读取配置文件数据,就可以不用重复写读取配置文件的代码,直接引入该封装的类,并实例化对象调用类里面封装的方法即可。

以上就是如何利用python 读取配置文件的详细内容,更多关于python 读取配置文件的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python网络编程之读取网站根目录实例
Sep 30 Python
用python 制作图片转pdf工具
Jan 30 Python
python统计文本文件内单词数量的方法
May 30 Python
Scrapy使用的基本流程与实例讲解
Oct 21 Python
pycharm 取消默认的右击运行unittest的方法
Nov 29 Python
python中使用 xlwt 操作excel的常见方法与问题
Jan 13 Python
解决Django Static内容不能加载显示的问题
Jul 28 Python
pandas和spark dataframe互相转换实例详解
Feb 18 Python
scrapy处理python爬虫调度详解
Nov 23 Python
python网络爬虫实现发送短信验证码的方法
Feb 25 Python
用python删除文件夹中的重复图片(图片去重)
May 12 Python
Python开发简易五子棋小游戏
May 02 Python
Pandas之缺失数据的实现
Jan 06 #Python
matplotlib绘制鼠标的十字光标的实现(内置方式)
Jan 06 #Python
java字符串格式化输出实例讲解
Jan 06 #Python
matplotlib 画动态图以及plt.ion()和plt.ioff()的使用详解
Jan 05 #Python
查找适用于matplotlib的中文字体名称与实际文件名对应关系的方法
Jan 05 #Python
微软开源最强Python自动化神器Playwright(不用写一行代码)
Jan 05 #Python
Python读取ini配置文件传参的简单示例
Jan 05 #Python
You might like
Godaddy空间Zend Optimizer升级方法
2010/05/10 PHP
php+mysql数据库查询实例
2015/01/21 PHP
PHP-FPM之Chroot执行环境详解
2015/08/03 PHP
如何让PHP编码更加好看利于阅读
2019/05/12 PHP
javascript仿qq界面的折叠菜单实现代码
2012/12/12 Javascript
网页加载时页面显示进度条加载完成之后显示网页内容
2012/12/23 Javascript
JavaScript 在网页上单击鼠标的地方显示层及关闭层
2012/12/30 Javascript
jQuery之过滤元素操作小结
2013/11/30 Javascript
js this函数调用无需再次抓获id,name或标签名
2014/03/03 Javascript
javascript中setInterval的用法
2015/07/19 Javascript
d3.js实现简单的网络拓扑图实例代码
2016/11/06 Javascript
js中DOM事件绑定分析
2018/03/18 Javascript
React Native日期时间选择组件的示例代码
2018/04/27 Javascript
js+css实现红包雨效果
2018/07/12 Javascript
html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】
2019/09/10 jQuery
纯JS实现五子棋游戏
2020/05/28 Javascript
Vue组件跨层级获取组件操作
2020/07/27 Javascript
[07:09]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant 选手采访
2021/03/11 DOTA
python机器学习之贝叶斯分类
2018/03/26 Python
详解pandas删除缺失数据(pd.dropna()方法)
2019/06/25 Python
Python 最强编辑器详细使用指南(PyCharm )
2019/09/16 Python
TensorFlow MNIST手写数据集的实现方法
2020/02/05 Python
德国购买健身器材:AsVIVA
2017/08/09 全球购物
英国Flybe航空官网:欧洲最大的独立支线廉价航空公司
2019/07/15 全球购物
教师个人自我鉴定
2014/02/08 职场文书
幼儿园教师工作感言
2014/02/15 职场文书
法律进机关实施方案
2014/03/12 职场文书
办公室领导干部作风整顿个人整改措施
2014/09/17 职场文书
2014新生大学四年计划书
2014/09/21 职场文书
泸县召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
公务员政审材料范文
2014/12/23 职场文书
初中毕业生感言
2015/07/31 职场文书
药房管理制度范本
2015/08/06 职场文书
2016年艾滋病宣传活动总结
2016/04/01 职场文书
Python Pygame实战之塔防游戏的实现
2022/03/17 Python
Linux服务器离线安装 nginx的详细步骤
2022/06/16 Servers