对测试数据的自动整理出报告
最近老是整报告,搞了个半自动出报告的玩意。本来想用pack,还是搞得不清楚最后还是选择grid,相对简单点"""
1.选择文件夹,获取文件夹中的txt文件
2.读取txt文件的内容(addr,addr2(hex),description,value)
3.上一步获取的txt文件内容的value值实际是十六进制
4.选择要使用的文件
5.选择报告模板(*.xlsx),并将第四步选择的文件的value值以0x00的格式保存到报告模板
"""
import tkinter as tk
from tkinter import filedialog
import os
import openpyxl
transresult={}
def filedirselect():
global filenamelist
global filedir
filedir = filedialog.askdirectory()#选择数据位置
filenamelist=
#filenamelist= os.listdir(filedir)
print(filenamelist)
if filedir != "":
entry1.delete(0,'end')
entry1.insert(0,filedir)
pass
def fileanalyse():#分析测试数据
filenum=len(filenamelist)
if entry2.get() !="":
entry2.delete(0,'end')
entry2.insert(0,filenamelist)
for i in range(filenum):
filename =filedir+'/'+filenamelist
transresult]=filetrans(filename) #页名做键,页的registervalue列表做值 字典
pass
def filetrans(filename): #对测试的txt数据进行转换
registervalue=[]
file=open(filename,'r')
for each_line in file:
each_linelist=each_line[:-1].split('\t')
registervalue.append('0x'+each_linelist[-1])
file.clegisee()
return registervalue
pass
def modefileselect():
file=filedialog.askopenfilename()
if entry4.get() !='' and file !='':
entry4.delete(0,'end')
entry4.insert(0,file)
pass
def writereport():
reportname=entry4.get() #获取报告模板位置和名称
pagenamelist=entry3.get().split(',') #获取需要处理的page列表
numofpage=len(pagenamelist)
wb=openpyxl.load_workbook(reportname) #打开报告模板文件,为下一步的写入做准备
for each in pagelist:
wsheet=wb.get_sheet_by_name(each) #打开要处理的page
i=2
while i<130: #更新报告中对应sheet中C列的值
wsheet['C'+str(i)].value=transresullt
i +=1
wb.save(reportname)
pass
root= tk.Tk(className='Code Validation trans')
root.geometry("550x250+200+150")
label1= tk.Label(root,text='数据位置',width=6)
label1.grid(row=0,rowspan=1,column=1,padx=10,pady=15)
#label1.pack(side='left',padx=10,pady=1)
entry1=tk.Entry(root,width=36,font=6)
entry1.grid(row=0,column=2,columnspan=3,padx=10,pady=15,sticky='n')
#entry1.pack(side='left',padx=10,pady=1)
button1=tk.Button(root,text='浏览...',command=filedirselect,width=6)
button1.grid(row=0,column=5,columnspan=1,padx=10,pady=15)
#button1.pack(side='left',padx=10,pady=1)
button2=tk.Button(root,text='数据解析',command=fileanalyse,width=6)
button2.grid(row=0,column=6,columnspan=1,padx=10,pady=15)
#button2.pack(side='left',padx=10,pady=1)
label2= tk.Label(root,text='text文件',width=6)
label2.grid(row=1,rowspan=1,column=1,padx=10,pady=15)
#label2.pack(side='top',padx=10,pady=1)
entry2=tk.Entry(root,width=60)
entry2.grid(row=1,column=2,columnspan=5,padx=10,pady=15,sticky='n')
#entry2.pack(side='bottom',padx=10,pady=1)
label3= tk.Label(root,text='选择text',width=6)
label3.grid(row=2,rowspan=1,column=1,padx=10,pady=15)
#label2.pack(side='top',padx=10,pady=1)
entry3=tk.Entry(root,width=60)
entry3.grid(row=2,column=2,columnspan=5,padx=10,pady=15,sticky='n')
#entry2.pack(side='bottom',padx=10,pady=1)
label2= tk.Label(root,text='选择模板',width=6)
label2.grid(row=4,rowspan=1,column=1,padx=10,pady=15)
#label1.pack(side='left',padx=10,pady=1)
entry4=tk.Entry(root,width=36)
entry4.grid(row=4,column=2,columnspan=3,padx=10,pady=15,sticky='n')
#entry1.pack(side='left',padx=10,pady=1)
button3=tk.Button(root,text='浏览...',command=modefileselect,width=6)
button3.grid(row=4,column=5,columnspan=1,padx=10,pady=15)
#button1.pack(side='left',padx=10,pady=1)
button4=tk.Button(root,text='确定',command=writereport,width=6)
button4.grid(row=4,column=6,columnspan=1,padx=10,pady=15)
#button2.pack(side='left',padx=10,pady=1)
页:
[1]