1.字典内容调用顺序
- # 一、对数据字典的内容进行排序
- # 字典数据是只有两个属性,一个是key一个是value
- import operator
- dic={"testA":3,"testC":1,"testB":4,"testD":2}
- # 如果是要对key进行排序,itemgetter里面是0,如果是对value进行排序,itemgetter里面是1
- dicn=sorted(dic.items(),key=operator.itemgetter(1))
- print(dicn)
- # 排完序之后把脚本取出来,如果fn下是0的话,就是把key打印出来,如果是1,就是把value打印出来
- for fn in dicn:
- print(fn)
- print(fn[0])
- print(fn[1])
2.列表里的字典排序
- # 二、定义一个列表,列表里面放多个字典,1个字典里面放两个字典数据,一个字典数据是文件名跟路径名,另一个
- # 字典是排序的参数和排序参数的值,有多少个脚本就有多少个字典,然后按照每个字典里面的排序参数进行排序
- import operator
- dicta=[{'testA':'d:\\aa\\bb','num':3},{'testB':'d:\\aa\\bb','num':2}
- ,{'testC':'d:\\aa\\bb','num':1}]
- # 对列表里的字典内容排序
- # for content in dic[i],这里的content打印的是每个字典数据的key,如果
- # 加上.items(),那这里的content就是打印每个字典里面的key跟values
- dic1=sorted(dicta,key=operator.itemgetter('num'))
- # print('排序后的列表',dic1)
- for i in range(0,3):
- # print(dic1[i])
- n=0
- for content in dic1[i].items():
- # print(content)
- if n==0:
- print(content[0])
- print(content[1])
- n=n+1
- # 把配置文件中的内容输入到字典中,进行排序
- # 打开配置文件
- import csv
- import operator
- import unittest
-
- file=open('D:\PythonLearn\\framefour\config\config1.csv','r')
- # 读取配置文件
- rows=csv.reader(file)
- n=0
- dict={}
- list=[]
- for row in rows:
- if n>0:
- # 把列表里面的每一行数据放到字典中
- # 这边为什么要给一个空的字典
- dict={}
- # 如果往列表里面追加字典,字典参数如果是一样的就会被覆盖,所以每遍历一组数据,就要把字典数据清空,之前遍历
- # 的一组数据会逐个打印到列表中
- dict[row[1]]=row[0]
- dict['num']=int(row[3])
- # print(dict)
- list.append(dict)
- n=n+1
- # print(list)
- # 然后是对这个list列表里的字典进行排序
- lista=sorted(list,key=operator.itemgetter('num'))
- print(lista)
- # 再是到lista列表里面,把每一个字典的上的第一组内容打印出来
-
- for i in range(0,4):
- n=0
- for content in lista[i].items():
- if n==0:
- # print(content[0])
- # print(content[1])
- filename=content[0]
- filepath=content[1]
- print('文件名',filename,'路径名',filepath)
- # 调用脚本程序
- suite=unittest.defaultTestLoader.discover(filepath,pattern=filename)
- # 定义一个运行对象
- runner=unittest.TextTestRunner()
- # 运行这个定义的对象
- runner.run(suite)
- n=n+1
- # v5.0把所有配置文件中的内容进行读取
-
- import unittest
- import csv
- import operator
- if __name__ == '__main__':
- # 打开对应的配置文件,进行读取
- # 以只读方式打开
- file=open("D:\PythonLearn\\framefour\config\config1.csv","r")
- table=csv.reader(file)
- # line=len(open("D:\PyrhonLearn\interfacefram\config\config1.csv").readlines())
- # print(line)
- dic={}
- listd=[]
- line=0
- for row in table:
- # print(row[0])
- if line>0:
- # 把文件中读取的数据放入字典
- dic={}
- dic[row[1]]=row[0]
- dic["num"]=int(row[3])
- # 把脚本的运行状态加入字典数据
- dic["state"]=row[2]
- # print(dic)
- line=line+1
- if dic!={}:
- listd.append(dic)
- print("n行数=",line)
- # print(listd)
- dicn=sorted(listd,key=operator.itemgetter("num"))
- # print(dicn)
- # n=0是指遍历每个字典中的第一组内容
- # n=1是指遍历每个字典中的第二组内容
- # n=2是指遍历每个字典中的第三组内容
- # range范围里面的line是遍历csv文件的行数
- for i in range(0,line-1):
- n=0
- for content in dicn[i].items():
- if n==0:
- # print(content)
- # 这里的content0是指key,content1是指value
- fname=content[0]
- fdir=content[1]
- # print("fname",fname, "fdir",fdir)
- if n==2:
- # print(content)
- state=content[1]
- # print("state",state)
- if state=="Yes":
- # 调用脚本程序进行执行
- print("最终运行的程序",fname)
- discover=unittest.defaultTestLoader.discover(fdir,pattern=fname)
- # 定义一个运行对象
- runner=unittest.TextTestRunner()
- runner.run(discover)
- n=n+1
-
-