import csv import os def deal_params(dev_list,fun): para_list=[] for i in dev_list: a=fun(i) dict1=demo(a) para_list.append(dict1) read_params_list=[] for i in para_list: if len(i)>0: for j,k in i.items(): k.append(j) read_params_list.append(tuple(k)) for l in range(len(k)): if isinstance(k[l],int): pass read_params_list=sort_list(read_params_list) return read_params_list def output_value_csv(data,header =["test_num","device_name","reg_name","offset","alter_value","expect_value"],file_name="data.csv"): if file_name=="data.csv": if os.path.exists(file_name): print("{}文件已存在".format(file_name)) else: with open(file_name,"w",encoding="utf-8",newline='')as fq: writer=csv.writer(fq) writer.writerow(header) writer.writerows(data) else: if os.path.exists(file_name): print("{}已删除,重新生成".format(file_name)) os.remove(file_name) with open(file_name,"w",encoding="utf-8",newline='')as fq: writer=csv.writer(fq) writer.writerow(header) writer.writerows(data) def out_put_test_reslut(data): file_name="testcase_result.csv" header=["tst_num","device_name","reg_name","offset","init_value","alter_value","expect_value","actual_value","test_result"] output_value_csv(data,header=header,file_name=file_name) def read_csv(): try: reg_par_list=[] with open("data.csv") as f: f_csv=csv.reader(f) headers=next(f_csv) for row in f_csv: reg_params=(row[0],row[1],row[2],int(row[3],16),int(row[4],16),int(row[5],16)) reg_par_list.append(reg_params) return reg_par_list except IndexError: print("请补充测试数据") except Exception as ep: print(ep) def demo(a): dict1={} for j,k in a.items(): for i in range(len(k)): dict1[k[i]["name"]] = [j,k[i]["offset"]] return dict1 def sort_list(a): for i in range(len(a)): for j in range(i+1,len(a)): if a[i][0] == a[j][0]: if a[i][1]>a[j][1]: a[i],a[j] = a[j],a[i] res=[] res1=[] for i in a: i=list(i) res.append(i) [res1.append(res[i][0]) for i in range(len(res)) if res[i][0] not in res1] for i in res1: a=1 for k in res: if i in k: testcasenum="testcase{}_({})".format(str(a),i) k.insert(0,testcasenum) a+=1 return res