鱼C论坛

 找回密码
 立即注册
查看: 1322|回复: 0

[原创] 对测试数据的自动整理出报告

[复制链接]
发表于 2020-4-4 12:04:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
最近老是整报告,搞了个半自动出报告的玩意。本来想用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=[filename for filename in eo.listdir(filedir) if filename.endswith(".txt")]
    #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[i]
        transresult[filenamelist[i]]=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[each+'.txt'][i-2]
            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)
pic1.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-17 07:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表