Python 学习笔记 https://www.jianshu.com/nb/49026514
引言
ini文件常见于配置文件操作,在接口自动化测试中常用于读取配置文件、Xml文件常见于前端读取,在Selenium自动化测试中使用较为常见。本文分享如何写入、如何读取ini和XML文件。
新建ini文件
思路步骤
- 先构建一个对象,新增一个section ,增加key-value键值对
- 再新增一个section,但不加key-value键值对
- 写入文件
# 导入模块
import configparser
# 先构建一个对象
config = configparser.ConfigParser()
# 新增一个section
config.add_section("早安阳光")
# 增加key-value键值对
config.set('早安阳光', '职业', '测开')
config.set('早安阳光', '爱好', '咖啡')
config.set('早安阳光', '精神', '永不言弃')
# 再新增一个section,但不加key-value键值对
config.add_section("花自飞")
# 写入文件
with open("qianye.ini", 'w') as configfile:
config.write(configfile)
写入文件.jpg
读取ini文件
- 获取它所有的section对象
- 获取section下所有的options
- 根据sections和options获取对应的value值
# -*- coding: utf-8 -*-
# @Time : 2021/3/2 17:56
# @File : Learn_ini.py
# @Author : Yvon_早安阳光
# 导入模块
import configparser
# 先构建一个对象
config = configparser.ConfigParser()
# 新增一个section
config.add_section("早安阳光")
# 增加key-value键值对
config.set('早安阳光', '职业', '测开')
config.set('早安阳光', '爱好', '咖啡')
config.set('早安阳光', '精神', '永不言弃')
# 再新增一个section,但不加key-value键值对
config.add_section("花自飞")
# 写入文件
with open("qianye.ini", 'w') as configfile:
config.write(configfile)
#获取它所有的section对象
sections = config.sections()
# print(sections)
# 获取section下所有的options
for sec in sections:
print('主键查询 %s' % sec)
options = config.options(sec)
print('value值1 %s'% options)
#根据sections和options获取对应的value值
for sec in sections:
print('主键查询 %s' % sec)
options = config.options(sec)
print('value值1 %s'% options)
for option in config.options(sec):
print("[%s] %s=%s" %(sec,option,config.get(sec, option)))
查询结果.jpg
读取XMl文件
XML.jpg- 方法1: DOM(Document Object Model) 将XML数据在内存中解析成一个树,通过对树的操作来操作XML。
- 方法2: SAX (simple API for XML ) python 标准库包含SAX解析器,SAX用事件驱动模型,通过在解析XML的过程中触发一个个的事件并调用用户定义的回调函数来处理XML文件。
- 方法3: ElementTree(元素树) ElementTree就像一个轻量级的DOM,具有方便友好的API。代码可用性好,速度快,消耗内存少。
# -*- coding: utf-8 -*-
# @Time : 2021/3/3 15:46
# @File : test_XML.py
# @Author : Yvon_早安阳光
from xml.etree import ElementTree #引入ElementTree的包
#小说的类
class Novel:
#定义初始化属性,和xml文件属性相同
def __init__(self,name=None,author=None,age=None,price=None):
self.name=name
self.author = author
self.age = age
self.price=price
def __str__(self): #转化为字符串输出
return self.name+":"+self.author+":"+self.age+":"+"self.price"
roota=ElementTree.parse("books.xml") #parse方法读取xml文件,得到元素树
books=[] #定义一个集合
for story in bk: #对得到的所有的根元素下的子标签循环输出
book=books() #定义一个类对象
book.name=story.find("name").text #对象的相应标签值=子标签查找到的固定标签名,并以text形式输出
book.author = story.find("author").text
book.age = story.find("age").text
book.price=story.find("price").text
books.append(book) #将得到的属性值追加到定义的集合中
if __name__ == "__main__":
for i in books: # 遍历集合
print("小说名、作者、年龄、价格 %s" %i)
XML读取结果.jpg
网友评论