引言

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

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

configparser模块功能介绍

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

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

配置文件的格式如下:

中括号“[ ]”内包含的为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()类提供读写配置文件的相关方法,就可以比较方便的操作配置文件。后续可以将上述读写配置文件需要用到的方法封装到自定义类中,便于程序其他模块引用。

python自动化读取和写入文件_基于Python的接口自动化实战-基础篇之读写配置文件...相关推荐

  1. 用dict读取和写入表格_用Python快速处理表格,让你快人一步两步三四部

    日常工作中表格处理时非常令人头疼的一个部分, 概念 CSV (Comma Separated Values),即逗号分隔值(也称字符分隔值,因为分隔符可以不是逗号),是一种常用的文本 格式,用以存储表 ...

  2. python读取raw数据文件_在python下读取并展示raw格式的图片实例

    raw文件可能有些人没有,因此,先用一张图片创建一个raw格式的文件(其实可以是其他类型的格式文件) import numpy as np import cv2 img = cv2.imread('c ...

  3. python读取raw图片文件_在python下读取并展示raw格式的图片实例

    raw文件可能有些人没有,因此,先用一张图片创建一个raw格式的文件(其实可以是其他类型的格式文件) import numpy as np import cv2 img = cv2.imread('c ...

  4. python不解压直接提取文件_用python不解压的读取bz2文件和gz文件

    当一个文档特别大的时候(比如wikidata等知识库的dump),往往会采用bz2或者gz对其进行压缩,方便下载,同时减少存储空间(bz2压缩率更高一些). 那么,如何不用解压也能读取原来的文档呢? ...

  5. python把异常写入文件_使用Python将Exception异常错误堆栈信息写入日志文件代码

    本篇文章小编给大家分享一下使用Python将Exception异常错误堆栈信息写入日志文件代码及补充知识,对大家的学习有一定的帮助,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看 ...

  6. python中numpy数组的合并_基于Python中numpy数组的合并实例讲解

    基于Python中numpy数组的合并实例讲解 Python中numpy数组的合并有很多方法,如 - np.append() - np.concatenate() - np.stack() - np. ...

  7. python实现空气质量提醒程序_基于Python实现空气质量指数可视化

    前面我们已经爬取了全国城市空气质量数据( 基于Python实现城市空气质量爬取 ),基于之前我们爬取的数据,本文将使用Python将空气质量最好的前20个城市以柱状图的形式展示出来,点击对应的柱状图能 ...

  8. python怎样使用各个日期赤纬_基于Python的天文软件命令行界面设计与实现

    计算机软件技术的不断发展,推动了人机交互技术的长足进步.从传统的命令行(Command Line Interface,CLI),到图形用户界面(Graphical User Interface,GUI ...

  9. 基于python的abaqus二次开发_基于PYTHON的ABAQUS二次开发实例讲解

    第 1 页 共 11 页 基于 Python 的 Abaqus 二次开发实例讲解 ( asian58 2013.6.26 ) 基于 Python 的 Abaqus 的二次开发便捷之处在于: 1 .所有 ...

最新文章

  1. error: the following arguments are required: cfg_file
  2. linux 进程阻塞 语句,MPI进程拓扑及非阻塞通信程序示例
  3. Sublime Text 3 快捷键精华版
  4. java 垃圾回收手动回收_Java垃圾回收(4)
  5. python中excel制作成绩报表_python制作简单excel统计报表2之操作excel的模块openpyxl简单用法...
  6. 如何創建一個自己的 Composer/Packagist 包 (PHP)
  7. 冲刺周期二--站立会议03
  8. keras保存断点模型与加载断点
  9. python代码打包成apk反编译_python程序打包和反编译
  10. 【转】java注解-最通俗易懂的讲解
  11. 网络工程师 第5章 无线通信网
  12. matlab 如何查数据类型,MATLAB数据类型
  13. 股市中如何用筹码分布选牛股,通达信幅图指标公式筹码寻牛
  14. has been injected into other beans[XXXXXXXXXX] in its raw version as part of a circular reference
  15. 数字医学影像工作站相关资料汇总
  16. 一加7t人脸识别_一加7T深度测评:它体现了最佳的技术价值吗?
  17. Latex 常用括号类表达式
  18. 程序员送给对象的生日礼物
  19. VS.NET 2003简体中文版下载
  20. 阿里聚安全Webview安全攻防

热门文章

  1. mac 终端提示_有用的终端提示
  2. mcu比较器技巧和诀窍_如何准备技术面试-技巧和窍门,以帮助您表现最好
  3. raspberry pi_使用Raspberry Pi和GPIO引脚控制外部LED
  4. Matlab中fixdt数据类型
  5. Python 最强编辑器PyCharm详细使用指南!
  6. python通用爬虫和聚焦爬虫的区别
  7. 深度学习《CNN架构续篇 - 梯度下降的优化》
  8. pytorch gather_Pytorch 单机并行训练
  9. 【Tensorflow】深度学习实战01——Tensorflow实现简单的卷积网络(MNIST)
  10. 《BERT:Pre-training of Deep Bidirectional Transformers for Language Understanding》