如何利用python 读取配置文件

 更新时间:2021年01月06日 09:32:05   作者:那年故乡的明月  
这篇文章主要介绍了如何利用python 读取配置文件,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下

引言

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

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

configparser模块功能介绍

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

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

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

配置文件的格式如下:

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

      示例:

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

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

 代码示例:

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)

运行以上代码输出如下:

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

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

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

 编辑如下代码:

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()

运行结束后如下:

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

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

新建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 读取配置文件的资料请关注脚本之家其它相关文章!

相关文章

  • flask项目集成swagger的方法

    flask项目集成swagger的方法

    这篇文章主要介绍了flask项目集成swagger的方法,帮助大家更好的理解和使用flask框架,感兴趣的朋友可以了解下
    2020-12-12
  • 如何在pycharm中快捷安装pip命令(如pygame)

    如何在pycharm中快捷安装pip命令(如pygame)

    这篇文章主要介绍了如何在pycharm中快捷安装pip命令(如pygame),具有很好的参考价值,希望对大家有所帮助。
    2021-05-05
  • python Pandas库基础分析之时间序列的处理详解

    python Pandas库基础分析之时间序列的处理详解

    这篇文章主要介绍了python Pandas库基础分析之时间序列的处理详解,Pandas作为Python环境下的数据分析库,更是提供了强大的日期数据处理的功能,是处理时间序列的利器,需要的朋友可以参考下
    2019-07-07
  • Python类的详细定义与使用案例(实例讲解)

    Python类的详细定义与使用案例(实例讲解)

    这篇文章主要给大家介绍了关于Python类的详细定义与使用案例的相关资料,在Python中类表示具有相同属性和方法的对象的集合,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-10-10
  • python 操作hive pyhs2方式

    python 操作hive pyhs2方式

    今天小编就为大家分享一篇python 操作hive pyhs2方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • python math模块使用方法介绍

    python math模块使用方法介绍

    math库是python的内置数学类函数库,支持整数和浮点数运算,math模块下的函数,返回值均为浮点数,除非有说明,math模块提供类似C语言标准定义的数学函数
    2022-08-08
  • Django获取前端数据的实现方式

    Django获取前端数据的实现方式

    这篇文章主要介绍了Django获取前端数据的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Python中的exec、eval使用实例

    Python中的exec、eval使用实例

    这篇文章主要介绍了Python中的exec、eval使用实例,本文以简洁的方式总结了Python中的exec、eval作用,并给出实例,需要的朋友可以参考下
    2014-09-09
  • python解析html提取数据,并生成word文档实例解析

    python解析html提取数据,并生成word文档实例解析

    这篇文章主要介绍了python解析html提取数据,并生成word文档实例解析,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • python 按照sheet合并多个Excel的示例代码(多个sheet)

    python 按照sheet合并多个Excel的示例代码(多个sheet)

    这篇文章主要介绍了python 按照sheet合并多个Excel的示例代码(多个sheet),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09

最新评论