目录
8、MySQL数据库的操作-pymysql
8.1 连接并操作数据库
9、ini文件的操作-configparser
9.1 模块-configparser
9.2 读取ini文件中的内容
9.3 获取指定建的值
10 json文件操作-json
10.1 json文件的格式或者json数据的格式
10.2 json.load/json.loads
10.3 json.dump/json.dumps
11 yaml 文件操作-pyyaml
11.1 yaml 文件的应用场景
11.2 yaml 文件的格式
11.3 第三方包 - pyyaml
12 sys模块
12.1 处理命令行参数--sys.argv
12.2 退出程序,正常退出时exit(0)--sys.exit(n)
12.3 获取Python解释程序的版本信息
12.4 操作系统平台名称
8、MySQL数据库的操作-pymysql
 
在做测试过程中,我们可以把测试数据创建在数据库,也可以读取数据库中的数据进行断言操作
python操作数据库之前需要安装数据库驱动
-  安装方式: pip install pymysql
8.1 连接并操作数据库
import pymysql
# 连接数据库
my_connect = pymysql.connect(host = '',user = '',password = '',database = '',port = ,charset = 'utf8')
# 建立游标:目的是为了缓存数据方便操作(读取数据,遍历表中的所有数据,以便查询)
du_shuju = my_connect.cursor()
#执行sql语句
du_shuju.execute("select * from xxxxx;")
#获取数据
huoqu_data = du_shuju.fetchall()
print(huoqu_data)
#修改表中的数据
du_shuju.execute("update 表名 set 字段名="xxx" where 字段名="yyy";")
#提交数据,修改的数据要进行提交才能修改数据库中的数据,否则修改的只是游标缓存里的数据
my_connect.commit()注意点:链接数据库的connect类返回的是链接对象,使用链接对象创建游标对象。使用游标对象的execute方法执行sql语句。如果是更新表操作需要使用链接对象commit提交。如果是查询操作需要使用游标的对象的fetchall方法获取查询结果,不需要使用链接对象commit提交,因为查询操作没有更新表。
注意点:如果查询操作获取返回结果,使用游标对象的
fetchall方法获取。
fetchall方法是临时的,注意需要使用变量结束fetchall方法的返回结果。
9、ini文件的操作-configparser
 
什么是ini文件
ini文件是Initialization File的缩写,即初始化文件,是windows的系统配置文件所采用的存储格式。
ini文件的格式:ini文件由节、键、值组成。
[节点/section]
(键=值)
key=value例子:setup.ini
[Startup] RequireOS=Windows 7 RequireMSI=3.1 RequireIE=7.0.0000.0 Require64BitVCRT=1 [Windows 7] PlatformID=2 MajorVersion=6 MinorVersion=1
9.1 模块-configparser
 
configparser是第三方模块,主要是用来操作ini文件
安装方式:pip install configparser
9.2 读取ini文件中的内容
 
使用configparser的Configparser类是实例对象的read方法读取ini文件,需要给read传入ini文件路径。
# 注意点:Configparser类的实例对象的read方法的机制:读取ini文件之后加载到Configparser类的实例对象中的。
# 1:获取ini文件的绝对路径   os.path.dirname(os.path.dirname(__file__))获取当前文件父级的父级目录
ini_path = os.path.dirname(os.path.dirname(__file__)) + '/data_config/config.ini'
# 2: 创建Configparser类的实例对象
conf = configparser.ConfigParser()
# 3: 调用read方法读取ini文件
# read("ini文件的路径"):返回值是读取成功的文件路径。机制:讲读取成功的文件加载到Configparser类型的实例对象中
conf.read(ini_path)9.3 获取指定建的值
使用configparser的Configparser类是实例对象的get方法获取ini文件下指点键对应的值。
conf = configparser.COnfigparser()
conf.get("节点名", "键")10 json文件操作-json
 
json是用来存储简单的数据结构和对象的文件。json是一种轻量级的数据交换格式,基于ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据,用于许多Web应用程序来进行数据交换。
10.1 json文件的格式或者json数据的格式
 
1.列表方式 [ ]---列表套字典或者列表套列表
[{"id" : 1 ,"name" : "xiaoming"
},{"id" : 2 , "name" : "xiaohong"
},["name", "age", "sex"]
]
2.字典方式 { }--字典套字典或者字典套列表
// 前后端分离,推荐后端返回给前端数据格式
{"status" : 0 ,          //执行状态码"msg"    : "SUCCESS",   //说明文字信息,没有为NULL"data"   :[{            //对象中嵌套数组,数组是返回的数据,"id"    : 1 ,"name"  : "xiaohong"},{"id"    : 2,"name"  : "xiaoming"}]
} 3.反例 
{"id" : ox16 } //不合法,数值需要是十进制
{"name" : underfined } //不合法,没有该值
[{"name" : NUll,"school" : function() {console.log("该写法是错误的")}//不合法
}]//json中不能使用自定义函数,或系统内置函数json模块是python自带的
10.2 json.load/json.loads
 
-  json.load(文件对象):将json文件转成python对象
-  json.loads(字符串)将字符串数据转成python对象# json.laods(字符串) json_data = '{"a": {"b": {"c": "数据"}}}' result = json.loads(json_data) print(type(result))  # json.load(文件对象) with open(r'json文件路径', mode="r") as f:print(json.load(f)) 
10.3 json.dump/json.dumps
 
-  json.dump(obj, fp):将python对象写入json文件
-  json.dumps(obj):将python对象转成json数据# json.dumps(obj) dict1 = {"a": {"b": {"c": "数据"}}} result = json.dumps(dict1) print(type(result))  # json.dump(obj, fp) dict2 = {"a": {"b": {"c": "数据"}}} with open(r"json_data.json", mode="w") as fp:json.dump(dict2, fp)
11 yaml 文件操作-pyyaml
 
11.1 yaml 文件的应用场景
 
yaml其实也类似于 json、txt ,它们都属于一种文本格式。在我们的实际工作中, yaml 文件经常作为服务期配置文件来使用。 比如一些定义好的内容,并且不会修改的信息,我们就可以通过定义 yaml 文件,然后通过读取这样的文件,将数据导入到我们的服务中进行使用。
由于 yaml 文件一般作为配置文件使用,所以较少会修改。
11.2 yaml 文件的格式
 
1、大小写敏感
2、使用缩进表示层级关系
3、缩进的空格数目不重要,只要相同层级的元素左侧对齐即可,通常开头缩进两个空格
4、不支持Tab键制表符缩进,只使用空格缩进
5、字符后缩进一个空格,如冒号,逗号,短横杆(-)等
6、"—“表示YAML格式,一个文件的开始,用于分隔文件间
7、”#”表示注释 (yaml文件只有行注释)
YAML 支持的数据结构有三种。
-  对象:键值对的集合,又称为字典(dictionary) 
-  数组:一组按次序排列的值,又称为 列表(list) 
-  纯量(scalars):单个的、不可再分的值 
下面对这三种数据结构做详细介绍:
yaml 中的值有以下基本类型:
-  字符串 
-  整形 
-  浮点型 
-  布尔型 
-  null 
-  时间 
-  日期 # 注释# 1-1、字典 键: 值 username: xiaoming # 冒号后面是空格 password: 123456 info: 配置 # 中文---不建议使用,有可能会乱码# 1-2、字典嵌套 NAME_PSW:name: xiaomingpassword: 123456 # 字典套列表 person:name: 锋声age: 18man: trueaddress:- 深圳- 北京- 广州 # 字典套列表 person1:name: 锋声age: 18man: trueaddress: [深圳, 北京, 广州]# 字典套列表  childs:-name: 锋声age: 10-name: 锋声age: 15# 字典套列表 person2:name: 锋声age: 18man: trueaddress: [深圳, 北京, 广州]twoArr:-- 2- 3- 1-- 10- 12- 30  # 列表 - 1 - 2  # 列表嵌套字典 - user1: aaa - user2: bbbage: 10sex: male
11.3 第三方包 - pyyaml
 
pyyaml 的安装:pip install PyYAML
import yamldef read(path):with open(path, 'r') as file:data = file.read()result = yaml.load(data)# result = yaml.load(data, Loader=yaml.FullLoader)return result这是因为在 YAML 5.1版本后弃用了yaml.load(file)这个用法,因为觉得很不安全,5.1版本之后就修改了需要指定Loader,通过默认加载器(FullLoader)禁止执行任意函数,该load函数也变得更加安全。所以我们需要将 result = yaml.load(data) 改为 result = yaml.load(data, Loader=yaml.FullLoader) 。
解决该 TypeError 不单单 只有 yaml.load(data, Loader=yaml.FullLoader) 这一个方法。
以下三选一即可解决该 TypeError
yaml.safe_load(file.read())yaml.load(file.read(), Loader=yaml.FullLoader)yaml.load(file.read(), Loader=yaml.CLoader)12 sys模块
 
sys模块是与python解释器交互的一个接口。sys 模块提供了许多函数和变量来处理 Python 运行时环境的不同部分。
12.1 处理命令行参数--sys.argv
 
在解释器启动后, argv 列表包含了传递给脚本的所有参数, 列表的第一个元素为脚本自身的名称。


12.2 退出程序,正常退出时exit(0)--sys.exit(n)
 
sys.exit(5)
print(11)
print(11)
print(11)
# 退出python执行程序,下面的代码将不会执行,如同shell中的exit一样。12.3 获取Python解释程序的版本信息
import sys
print(sys.version)12.4 操作系统平台名称
import sys
print(sys.platform)